데이터 베이스 MySQL 튜토리얼 工作中InnoDB引擎数据库主从复制同步心得

工作中InnoDB引擎数据库主从复制同步心得

Jun 07, 2016 pm 05:23 PM
innodb 마스터-슬레이브 복제

近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用

近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别于以前的MyISAM引擎的,所以这里也将其心得归纳总结了一下:

1)MySQL的replication过程是一个异步同步的过程,并非完全的主从同步,所以同步的过程中是有延迟的,如果做了读写分离的业务的话,建议也要监控此延迟时间;

2)MySQL的master与slave机器记得server-id要保持不一致,如果一样的话,replication过程中会出现如下报错:

Fatal error: The slave I/O thread stops because master and slavehave equal MySQL server ids; these ids must be different for replication to work(or the --replicate-same-server-id option must be used on slave but this doesnot always make sense; please check the manual before using it).

这个问题很好处理,即将slave机的server-id修改成跟master机器不一致即可。

3)我以前的一个误区就是,slave机器是用自己的二进制日志来完成replication过程的,其实不是这样的,根据复制的工作原理:slave服务器是copy主服务器的二进制日志到自己的中继日志,即relay-log日志(即CentOS3-relay-bin.000002这种名字的)中,然后再把更新应用用到自己的数据库上,所以slave机器是不需要开启二进制日志的,这样过程一样会成功的;除非是准备做主主架构,这才需要slave机器开启二进制日志,这个问题一直在导着我,我以一直以为slave机器搭建replication环境时是一定要开启二进制的,

4)在master机器上授权时,尽量只给某一个或某几个固定机器权限,让它们只有replication slav,replication client权限,尽量不要给grant权限;另外,虽然数据库我们一般是通过内网操作,但越是在在内网对MySQL数据库进行授权操作,越是要注意安全;

5)replication搭建过程按照正常流程走的话,一般很容易实施成功,如果出错的话,多检查下网络环境、权限问题,,一般来说整个搭建过程应该还是会比较顺利的。

在数据库设计初期,我已经将此电子商务的数据库引擎定义为InnoDB,除了数据库中原有的系统表之外,其它表全部由MyISAM转成了InnoDB,原因有二:

1)电子商务业务会涉及到交易付款,在这种基本OLTP的应用中,InnoDB应该作为核心应用表的首选存储引擎;

2)DRBD系统重启时的过程会比较缓慢,会频繁的读表,如果表引擎为MyISAM的话极有可能出现损坏情况,为了造成不必要的问题,我将数据库的表引擎由MyISAM均转成了InnoDB引擎的表。

DRBD+Heartbeat+MySQL参考以前的工作文档,搭建的比较顺利,就是在搭建replication环境时遇到了1062报错,详细过程如下:

初期参考MySQL手册操作,取master机器的快照备份,用的是--single-transaction选项,然后同步过程频繁1062报错,报错日志如下:

Last_SQL_Error: Error 'Duplicate entry 'd36ad91bff36308de540bbd9ae6f4279' for key 'PRIMARY'' on query. Default database: 'myproject'. Query: 'INSERT INTO `lee_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('d36ad91bff36308de540bbd9ae6f4279', '180.153.201.218', 'Mozilla/4.0', 1353394206, '')'

后来改变思路,用--master-data选项来取主master快照备份,命令如下所示:
 
mysqldump -uroot --quick --flush-logs --master-data=1 -p myproject > myproject.sql

linux

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 MySQL 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법 PHP에서 MySQL 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법 May 17, 2023 am 08:18 AM

인터넷의 급속한 발전으로 인해 웹 애플리케이션은 점점 더 데이터베이스 작업을 통합하고 있습니다. MySQL은 널리 사용되는 세계적으로 유명한 관계형 데이터베이스 시스템입니다. 동시성 웹 애플리케이션에서 MySQL 마스터-슬레이브 복제는 데이터베이스 성능과 가용성을 향상시키는 중요한 방법입니다. 이 기사에서는 PHP를 사용하여 MySQL 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법을 소개합니다. 1. MySQL 마스터-슬레이브 복제란 무엇입니까? MySQL 마스터-슬레이브 복제는 한 MySQL 데이터베이스 서버에서 다른 서버로 데이터를 복사하는 것을 의미합니다.

mysql innodb가 뭐야? mysql innodb가 뭐야? Apr 14, 2023 am 10:19 AM

InnoDB는 MySQL의 데이터베이스 엔진 중 하나이며 현재 MySQL AB의 바이너리 릴리스 표준 중 하나입니다. InnoDB는 이중 트랙 인증 시스템을 채택합니다. 하나는 GPL 인증이고 다른 하나는 독점 소프트웨어입니다. 권한 부여. InnoDB는 트랜잭션 데이터베이스에 선호되는 엔진이며 트랜잭션 보안 테이블(ACID)을 지원합니다. InnoDB는 최대 범위의 동시성을 지원할 수 있는 행 수준 잠금을 지원합니다.

MySQL이 바이너리 콘텐츠에서 InnoDB 행 형식을 보는 방법 MySQL이 바이너리 콘텐츠에서 InnoDB 행 형식을 보는 방법 Jun 03, 2023 am 09:55 AM

InnoDB는 디스크의 테이블에 데이터를 저장하는 스토리지 엔진이므로 종료하고 다시 시작한 후에도 데이터가 계속 존재합니다. 실제 데이터 처리 과정은 메모리에서 일어나므로 디스크에 있는 데이터를 메모리에 로드해야 하며, 쓰기나 수정 요청을 처리하는 경우에도 메모리에 있는 내용을 디스크에 새로 고쳐야 합니다. 그리고 우리는 디스크를 읽고 쓰는 속도가 매우 느리다는 것을 알고 있습니다. 이는 메모리에서 읽고 쓰는 것과는 몇 배 정도 다릅니다. 따라서 테이블에서 특정 레코드를 얻으려면 InnoDB 스토리지 엔진이 읽어야 합니다. 디스크의 레코드가 하나씩? InnoDB가 채택한 방식은 데이터를 여러 페이지로 나누고, 디스크와 메모리 간 상호 작용의 기본 단위로 페이지를 사용하는 것입니다. InnoDB의 페이지 크기는 일반적으로 16입니다.

고가용성 MySQL 클러스터 구축: 마스터-슬레이브 복제 및 로드 밸런싱을 위한 모범 사례 가이드 고가용성 MySQL 클러스터 구축: 마스터-슬레이브 복제 및 로드 밸런싱을 위한 모범 사례 가이드 Sep 09, 2023 am 10:57 AM

고가용성 MySQL 클러스터 구축: 마스터-슬레이브 복제 및 로드 밸런싱을 위한 모범 사례 가이드 최근 몇 년간 인터넷의 급속한 발전과 함께 데이터베이스는 대부분의 웹 애플리케이션에 대한 핵심 데이터 저장 및 처리 엔진 중 하나가 되었습니다. 이 시나리오에서는 고가용성과 로드 밸런싱이 데이터베이스 아키텍처 설계에서 중요한 고려 사항이 되었습니다. 가장 인기 있는 오픈 소스 관계형 데이터베이스 중 하나인 MySQL의 클러스터 배포 솔루션은 많은 주목을 받았습니다. 이 기사에서는 MySQL 마스터-슬레이브 복제 및 로드 밸런싱을 통해 고가용성 데이터베이스 클러스터를 구현하는 방법을 소개합니다.

mysql innodb 예외를 처리하는 방법 mysql innodb 예외를 처리하는 방법 Apr 17, 2023 pm 09:01 PM

1. mysql을 롤백하고 다시 설치합니다. 다른 위치에서 이 데이터를 가져오는 문제를 방지하려면 먼저 현재 라이브러리의 데이터베이스 파일(/var/lib/mysql/location)을 백업합니다. 다음으로 Perconaserver5.7 패키지를 제거하고 원래의 이전 5.1.71 패키지를 다시 설치하고 mysql 서비스를 시작했는데 Unknown/unsupportedtabletype:innodb 메시지가 표시되어 정상적으로 시작할 수 없었습니다. 11050912:04:27InnoDB:버퍼풀 초기화 중, 크기=384.0M11050912:04:27InnoDB:완료

Mysql의 innoDB에서 팬텀 읽기를 해결하는 방법 Mysql의 innoDB에서 팬텀 읽기를 해결하는 방법 May 27, 2023 pm 03:34 PM

1. Mysql 트랜잭션 격리 수준 이 네 가지 격리 수준은 여러 트랜잭션 동시성 충돌이 있는 경우 더티 읽기, 반복 불가능 읽기 및 팬텀 읽기 문제가 발생할 수 있으며 innoDB는 반복 읽기 격리 수준 모드에서 이를 해결합니다. 2. 팬텀 읽기란 동일한 트랜잭션에서 첫 번째 트랜잭션에서 범위 쿼리를 실행한 것처럼 전후에 동일한 범위를 두 번 쿼리했을 때 얻은 결과가 일치하지 않는 것을 의미합니다. 이때 조건에 맞는 데이터는 1개뿐이며, 두 번째 트랜잭션에서는 데이터 행을 삽입하여 제출합니다. 첫 번째 쿼리입니다. 첫 번째 트랜잭션의 첫 번째 쿼리와 두 번째 쿼리는 모두 동일합니다.

MySQL 스토리지 엔진 선택 비교: InnoDB, MyISAM 및 메모리 성능 지수 평가 MySQL 스토리지 엔진 선택 비교: InnoDB, MyISAM 및 메모리 성능 지수 평가 Jul 26, 2023 am 11:25 AM

MySQL 스토리지 엔진 선택 비교: InnoDB, MyISAM 및 메모리 성능 지수 평가 소개: MySQL 데이터베이스에서 스토리지 엔진의 선택은 시스템 성능과 데이터 무결성에 중요한 역할을 합니다. MySQL은 다양한 스토리지 엔진을 제공하며, 가장 일반적으로 사용되는 엔진으로는 InnoDB, MyISAM 및 Memory가 있습니다. 이 기사에서는 이 세 가지 스토리지 엔진의 성능 지표를 평가하고 코드 예제를 통해 비교합니다. 1. InnoDB 엔진 InnoDB는 나의 것

MySQL의 데이터 마스터-슬레이브 복제 기술 MySQL의 데이터 마스터-슬레이브 복제 기술 Jun 14, 2023 pm 02:10 PM

MySQL 데이터베이스는 다양한 데이터 복제 기술을 지원하는 매우 널리 사용되는 관계형 데이터베이스 관리 시스템이며, 그 중 가장 일반적으로 사용되는 것은 마스터-슬레이브 복제 기술입니다. 이 기사에서는 MySQL의 데이터 마스터-슬레이브 복제 기술에 대한 원리, 구현 방법, 일반적인 문제 및 대책을 소개합니다. 1. 마스터-슬레이브 복제 기술의 원리 MySQL의 마스터-슬레이브 복제 기술은 MySQL 데이터베이스의 데이터를 다른 서버로 복사하여 데이터 백업, 로드 밸런싱, 읽기-쓰기 분리 및 기타 기능을 달성할 수 있습니다. 기본 원칙은 기본 데이터베이스를 변환하는 것입니다.

See all articles