17.2.3.1 데이터베이스 복제 옵션 및 바이너리 로깅 옵션 설명
복제 옵션을 평가할 때 노예가 적용되는 --replicate-do-db
또는 --replicate-ignore-db
옵션이 있는지 여부를 검사하는 것으로 시작합니다. --binlog-do-db
또는 --binlog-ignore-db
를 사용하는 경우, 프로세스는 비슷하지만 옵션은 마스터에서 검사됩니다.
문 수준 복제는 기본 데이터베이스의 일치가 검사됩니다. 열 기반 리플리케이션은 데이터를 변경해야 할 데이터베이스가 검사되는 데이터베이스입니다. 바이너리 로깅 형식에 관계없이 데이터베이스 레벨 옵션의 검사는 다음 그림과 같이 진행합니다.
관련 절차 목록은 다음과 같습니다.
--replicate-do-db
옵션이 있습니까?예 그들 중 하나가 데이터베이스와 일치합니까?
예 문을 실행하고 종료합니다.
아니 문을 무시하고 종료합니다.
아니요 2 단계로 이동합니다.
--replicate-ignore-db
옵션이 있습니까?예 그들 중 하나가 데이터베이스와 일치합니까?
예 문을 무시하고 종료합니다.
아니요 3 단계로 이동합니다.
아니요 3 단계로 이동합니다.
테이블 수준 복제 옵션이있는 경우 그 검사를 진행합니다. 이러한 옵션의 검사 방법의 설명은 섹션 17.2.3.2 "테이블 수준 복제 옵션의 평가" 를 참조하십시오.
중요이 단계에서는 아직 허가 된 문은 실제로 아직 실행되고 있지 않습니다. 문은 모든 테이블 수준 옵션 (있는 경우)가 검사 될 때까지 실행되지 않고, 그 과정의 결과가 문을 실행할 수 있습니다.
바이너리 로깅의 경우 관련 절차 목록은 다음과 같습니다.
--binlog-do-db
또는--binlog-ignore-db
옵션이 있습니까?예 2 단계로 이동합니다.
아니 문을 기록하고 종료합니다.
기본 데이터베이스가 있나요 (데이터베이스가
USE
로 선택되어 있습니까)?예 3 단계로 이동합니다.
아니 문을 무시하고 종료합니다.
기본 데이터베이스가 있습니다.
--binlog-do-db
옵션이 있습니까?예 그들 중 하나가 데이터베이스와 일치합니까?
예 문을 기록하고 종료합니다.
아니 문을 무시하고 종료합니다.
아니요 4 단계로 이동합니다.
--binlog-ignore-db
옵션 중 하나가 데이터베이스와 일치합니까?예 문을 무시하고 종료합니다.
아니 문을 기록하고 종료합니다.
명령문 기반 로깅의 경우 CREATE DATABASE
, ALTER DATABASE
및 DROP DATABASE
문에 적용되는 규칙에만 예외가 생성되어 있습니다. 이러한 경우에는 업데이트를 기록 또는 무시할지 여부를 판단 할 때 생성, 변경 또는 삭제되는 데이터베이스가 기본 데이터베이스를 대체합니다.
--binlog-do-db
는 "다른 데이터베이스를 무시하는 것"을 의미하는 경우가 있습니다. 예를 들어, 명령문 기반 로깅을 사용하면 --binlog-do-db=sales
만으로 실행하는 서버는 기본 데이터베이스가 sales
가 아닌 바이너리 로그 문에 쓰지 않습니다. 같은 옵션에서 행 기반 로깅을 사용하면 서버는 sales
의 데이터를 변경하는 업데이트 만 기록합니다.