2009-03-24 4 views
1

매우 자주 삽입되는 마스터 서버에 로깅 테이블이 있습니다. 나는이 테이블을 슬레이브 서버에 복제 할 필요가 없으며 사실 슬레이브에 대해 replicate-ignore-table을 이미 무시했다.MySQL 복제 : 마스터 서버가 테이블 삽입을 복제하지 못하도록 함

그러나 모든 삽입이 마스터에서 페치 된 후에 만 ​​발생합니다. 나는 완전히 2 개 이유로 노예로 전송하기에서 해당 삽입을 방지하기 위해 싶습니다

  1. I가 손상되는 릴레이 로그 항목의 사례를 했어
  2. 서버 사이의 네트워크 트래픽에 아래로 잘라 (및 손상된 항목을 건너 뛸 필요가 있음). 로깅 테이블에 삽입되는 양을 감안할 때, 항상 삽입에 있습니다 (어쨌든 필요하지 않음).

어떻게하면 마스터가 특정 테이블의 로그를 다시 보내지 못하게 할 수 있습니까? 또는 삽입물이 마스터의 bin-log 파일에 표시되지 않도록 하시겠습니까? 마스터의 bin-log 파일에서 데이터베이스를 무시한다는 것을 알고 있습니다.

감사합니다.

답변

3

로깅 행을 삽입하기 전에 코드에 "SET SESSION sql_log_bin = 0"을 MySQL에 보냅니다. 그런 다음 다시 1로 설정하십시오.

이 접근법은 바이너리 로그가 아닌 시점과시기에 대한 세밀한 제어를 제공합니다. 가능한 단점은 데이터베이스 사용자가 SUPER 특권을 필요로한다는 것입니다.

+0

깔끔한 덕분입니다. – ceejayoz

관련 문제