2011-11-17 3 views
0

다음 MySQL 5.5.16 설치가 올바르게 실행되었습니다. 서버 A w/db.a 및 db.b 서버 B가 db.a의 슬레이브로 구성되었습니다 (db가 아님). .b)를 사용하여 --replicate-wild-do-table Srv.A-db.b의 테이블에 삽입/업데이트 db.aMySQL 복제 - 트리거가 여러 데이터베이스를 복제하지 않습니다.

db.a가 서버에 올바르게 복제 된 삽입시 트리거가 있습니다. B, 즉 server.A의 db.a에서 SQL 클라이언트를 통한 업데이트가 Server.B의 db.a로 올바르게 복제 된 경우

이제 문제가 발생합니다. Server.A/db.b에서 트리거됩니다 그 update/insert db.a는 복제되지 않습니다 ... 많은 시간을 낭비했습니다. 이 모든 내 지식을 보내고 ...

Srv.A/db.b에 나는 마지막으로 Srv.A/db.a를 가리키는 연합 테이블을 만들었고 연합 테이블을 통해 작동하는 트리거가 올바르게 복제되지만 VERY입니다. 느리고 일부 작업은 사용할 수 없습니다 (예를 들어 중복 업데이트시) ... 그래서 실제로는 염소 해결책입니다.

db.a와 db.b를 모두 복제하려고하면 트리거가 제대로 작동하지만 db.b는 매우 커서 server.B를 복제하지 않아야합니다.

오직 db.a가 복제 될 때 db.b -> db.a에서 트리거를 만드는 방법에 대한 제안은 ??

제안 해 주셔서 감사합니다.

답변

0

참조 MySQL의 트리거 자주 묻는 질문 B.5.12 : http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-B-5-1-12

'트리거 및 복제 MySQL은 대부분의 다른 데이터베이스 시스템에서와 같은 방법으로 5.0 일 : 마스터에 트리거를 통해 수행 작업이 슬레이브에 복제되지 않습니다 섬기는 사람.'

아마도 트리거가 실행되는 모든 이벤트를 변경하여 대신 트리거가 수행하는 것과 동일한 작업을 수행 할 저장 프로 시저를 호출 할 수 있습니다.

관련 문제