MySQL에서 행 기반 복제와 명령문 기반 복제의 차이점은 무엇입니까? 차이점은 무엇입니까? 나는 실제로 복제가 슬레이브에 미치는

행 기반 복제와 명령문 기반 복제의 실제 차이점은 무엇입니까? 나는 실제로 복제가 슬레이브에 미치는 영향을보고 있습니다.

행 기반 복제를 사용하는 경우 슬레이브에 어떤 영향이 있으며 명령문 기반을 사용하는 경우 어떤 영향이 있습니까?

다음 매개 변수도 고려하십시오.

   replicate-ignore-db  and replicate-do-db 

감사….!



답변

명령문 기반 복제 (SBR)는 SQL 문을 복제합니다. mysqlbinlog 덤프 프로그램을 사용하면 쉽게 읽을 수 있습니다.

RBR (행 기반 복제)은 실제 데이터 변경 사항을 복제합니다. 이진 로그 및 릴레이 로그는 SBR보다 훨씬 빠르게 커집니다. 또한 변경 사항을 생성 한 SQL을 식별 할 수 없습니다.
(아래 MySQL 5.6.2에 대한 업데이트 된 정보를 읽으십시오.)

보다 포괄적 인 장단점 목록은 다음과 같습니다. http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm

MySQL은 이진 로그에 두 유형의 명령문 / 행 형식을 모두 허용합니다. STATEMENT 기반을 권장합니다. 기본 이진 로그 형식은 MIXED이며 정상입니다.

replicate-ignore-dband 를 사용 하고 있으므로 replicate-do-dbStatement-Based Replication을 신뢰합니다.


MySQL 5.6.2 업데이트 :

MySQL 5.6.2에 도입 된 binlog_rows_query_log_events시스템 변수는 MySQL 5.6.2 이상의 서버가 행 쿼리 로그 이벤트와 같은 정보 로그 이벤트를 이진 로그에 기록하게합니다. 따라서 변경 사항을 생성 한 SQL을 식별 할 수 있습니다.

참조 : 17.1.4.4 이진 로그 옵션 및 변수


답변

MySQL 5.5에서는 명령문 기반 형식이 기본값입니다. 그러나 혼합 형식을 사용하는 것이 좋습니다. 이 경우 명령문 기반 로깅이 기본적으로 사용되지만 필요한 경우 행 기반 로깅으로 자동 전환됩니다.


답변