17.2.3.2 테이블 복제 옵션 설명
슬레이브는 다음의 두 가지 조건 중 하나가 true의 경우에만 테이블 옵션을 검사하고 평가합니다.
일치하는 데이터베이스 옵션을 찾을 수 없었다.
하나 이상의 데이터베이스 옵션을 찾을 이전 섹션에서 설명한 규칙 ( 섹션 17.2.3.1 "데이터베이스 수준 복제 옵션 및 바이너리 로깅 옵션 평가" 참조)에 따르면, "실행"조건에 이르고 있다고 평가 된 .
첫째, 예비 조건으로 슬레이브는 명령문 기반 복제가 유효한지 여부를 검사합니다. 그렇다면,하고 문이 스토어드 함수 내에있는 경우에는 슬레이브는 문을 실행하고 종료합니다. 열 기반 리플리케이션이 활성화되면, 슬레이브는 문이 마스터에서 스토어드 함수 내에 있을지 여부를 알 수 없기 때문에이 조건은 적용되지 않습니다.
문 기반 복제의 경우 복제 이벤트가 문을 표현합니다 (이벤트를 구성하는 모든 변경이 단일 SQL 문에 연결되어 있습니다). 열 기반 리플리케이션의 경우, 각 이벤트가 단일 테이블 행의 변경을 표현합니다 (따라서 UPDATE mytable SET mycol = 1
과 같은 단일 문이 많은 행 기반 이벤트를 생성 할 수 있습니다). 이벤트의 관점에서 보면 테이블 옵션을 검사하는 과정은 행 기반 및 문 기반 복제 모두에 대해 동일합니다.
이 점에 도달하여 테이블 옵션이없는 경우에는 슬레이브는 단순히 모든 이벤트를 실행합니다. --replicate-do-table
또는 --replicate-wild-do-table
옵션이 있으면 그것을 실행해야 할 이벤트의 경우, 이벤트는이 중 하나와 일치해야합니다. 그렇지 않은 경우 무시됩니다. --replicate-ignore-table
또는 --replicate-wild-ignore-table
옵션이있는 경우 이러한 옵션 중 하나와 일치하는 것을 제외하고 모든 이벤트가 실행됩니다. 이 프로세스는 다음 그림과 같습니다.
다음 단계에서이 평가에 대해 자세히 설명합니다.
테이블 옵션이 있나요?
예 2 단계로 이동합니다.
아니오 이벤트를 실행하고 종료합니다.
--replicate-do-table
옵션이 있습니까?예 테이블은 그 중 하나와 일치합니까?
예 이벤트를 실행하고 종료합니다.
아니요 3 단계로 이동합니다.
아니요 3 단계로 이동합니다.
--replicate-ignore-table
옵션이 있습니까?예 테이블은 그 중 하나와 일치합니까?
예 이벤트를 무시하고 종료합니다.
아니요 4 단계로 이동합니다.
아니요 4 단계로 이동합니다.
--replicate-wild-do-table
옵션이 있습니까?예 테이블은 그 중 하나와 일치합니까?
예 이벤트를 실행하고 종료합니다.
아니요 5 단계로 이동합니다.
아니요 5 단계로 이동합니다.
--replicate-wild-ignore-table
옵션이 있습니까?예 테이블은 그 중 하나와 일치합니까?
예 이벤트를 무시하고 종료합니다.
아니 6 단계로 이동합니다.
아니 6 단계로 이동합니다.
--replicate-do-table
또는--replicate-wild-do-table
옵션이 있습니까?예 이벤트를 무시하고 종료합니다.
아니오 이벤트를 실행하고 종료합니다.