2017-02-13 1 views
0

테이블에 DELETE 문이 많이있는 상황이 있습니다.MySQL에서 트랜잭션이 복제되지 않도록하려면 어떻게해야합니까?

SLAVE에서 테이블을 자르고 한 테이블에서 DELETE 문을 모두 무시하려면 apt 쿼리가 무엇이겠습니까?

+0

테이블의 내용을 의미한다면 'DISTINCT'를 사용하여 단일 복제되지 않은 값을 얻을 수 있습니다. 이게 당신이 요구하는 것입니까? –

+0

팬더에게 감사드립니다. 내 말은, bin 로그의 99 %에 tableA의 DELETE가 포함되어 있기 때문에 즉시 복제본을 따라 잡을 수있는 방법은 무엇입니까? 슬레이브에서 MySQL에게 tableA에 대한 DELETE 명령문을 무시하도록 지시 할 수 있습니까? – DBPlayer

+0

['sql_slave_skip_counter'] (https://dev.mysql.com/doc/refman/5.7/en/set-global-sql-slave-skip-counter.html)를 사용할 수 있지만, 이 중 어느 것이 삭제 명령문인지 스스로 결정하십시오. 또한이 테이블을 포함하는 모든 명령문이 마스터 및 슬레이브에서 다른 결과를 생성 할 수 있기 때문에 서버가 동기화되지 않아 나중에 심각한 결과를 초래할 수 있으므로 원하는 결과인지 실제로 확인해야합니다. 어쩌면 복제를 재설정하고 마스터에서 모든 데이터를 새로로드해야합니다. – Solarflare

답변

0

문 대신 테이블을 무시할 수 있습니다. 모든 삭제 명령문이 하나의 작업 테이블임을 확인한 경우 복제 중에이 테이블을 무시한 다음이 테이블을 직접 조작 할 수 있습니다.

+0

감사합니다 wang하지만 MySQL에게 슬레이브에서 복제 될 테이블을 무시하도록하는 방법은 무엇입니까? – DBPlayer

+0

복제를 시작하기 전에 --replicate-ignore-table 또는 --replicate-wild-ignore-table 옵션을 사용하십시오. 당신은 링크를 볼 수 있습니다 https://dev.mysql.com/doc/refman/5.7/en/replication-rules-table-options.html –

+0

고마워 왕, 내가 그 옵션을 보았다, 그 트릭을 할 수도, 그러나이 옵션을 설정 한 후 기본으로 들어오는 트랜잭션에이 옵션이 적용되는지 확실하지 않거나 이미 이진 로그에 기록되어 있고 복제 된 테이블에 대한 DELETE 문을 무시하기 시작합니다. – DBPlayer

관련 문제