MySQL 복제: 실패한 쿼리를 슬레이브에 전파하지 마세요

MySQL 복제: 실패한 쿼리를 슬레이브에 전파하지 마세요

하나의 마스터와 두 개의 슬레이브로 구성된 간단한 MySQL 복제 설정이 있습니다. 중복된 고유 키 또는 기타 이유로 인해 마스터에서 실행되는 쿼리가 실패하는 경우가 있습니다. 내가 보고 있는 것은 실패한 쿼리가 슬레이브 서버에 복제되어 거기에서도 오류가 발생한다는 것입니다. 잘못된 쿼리가 있을 때마다 복제가 중지되기 때문에 매번 이를 수정해야 하는 것은 짜증나고 지루한 작업입니다.

내가 보기에 마스터에서 쿼리가 실패하면 MySQL은 이를 슬레이브에 전파하지 않아야 합니다. MySQL을 이런 방식으로 구성할 수 있나요? 어떻게? 인터넷 검색을 시도하고 MySQL 문서를 찾아보았지만 표시되지 않습니다.

답변1

MySQL 복제는 binlog를 통해 수행됩니다. binlog에는 성공적인 트랜잭션만 기록되므로 마스터에서 쿼리가 실패하면 binlog에 표시되지 않습니다. 이는 이러한 종류의 쿼리가 복제본에 표시되지 않음을 의미합니다. 업데이트를 위한 열(등)이 없기 때문에 슬레이브1에서 복제가 중지되는 등의 오류가 발생하는 경우 이는 마스터와 슬레이브가 다르다는 의미입니다. percona-toolkit을 설치하고 pt-table-checksum으로 테이블을 확인해야 합니다.

관련 정보