2014-12-03 3 views
0

MySQL 마스터 - 슬레이브 복제 문제를 해결하고 있습니다.MySQL/MariaDB 복제 솔루션

저는 서버 A와 서버 B를 가지고 있습니다. 서버 A는 데이터를 테이블 TA1, TA2 및 TA3으로 생성하는 응용 프로그램을 실행합니다. TA1, TA2 및 TA3 (내부 조인 선택에 의해 정의 됨)의 특정 하위 집합을보고 엔진 전용 서버 B에있는 하나의 테이블 TB1로 복제하려고합니다. 데이터는 서버 A에서 생성 된 직후 가능한 한 빨리 서버 B에 복제되어야합니다. 서버 A에서 서버 B로 테이블 TAx를 복제하고 서버 B에있는 TBx로 복제 한 다음 목재 절단기처럼 할 수 있습니다. 불필요한 행을 필터링하기 위해 서버 B에서 뷰를 생성합니다.

아, 어떻게이 솔루션을 좋아합니까? 서버 A의 측면에서 행 필터링을 수행하고 하위 집합 만 복제하려고합니다. 어떤 생각을 멋지게 설정하는 방법?

나는 복제하기 전에 서버 A에서 테이블을 만들기 위해 매분마다 쿼리를 실행할 스케줄러를 피하기 위해 트리거를 사용하여 데이터를 필터링하지 않으려 고합니다. 데이터를 온라인 상태로 많이 복제하고 싶습니다.

답변

0

STATEMENT 기반 복제를 사용하면 단순히 슬레이브 측의 테이블에서 트리거를 사용하여 원하지 않는 행을 필터링 할 수 있습니다. 행 변경은 여전히 ​​binlog 복제 파일에 기록되며 슬레이브 측)

MariaDB 10.1 (아직 GA 버전이 아님)부터 ROW 기반 복제를 사용할 수 있으며 필터링을 수행하는 데에도 슬레이브 측 트리거가있을 수 있습니다 :

https://mariadb.com/kb/en/mariadb/documentation/replication/standard-replication/running-triggers-on-the-slave-for-row-based-events/

아니면 TBX 그림자 테이블에 대한 변경 사항은 다음만을 복제 복제 필터가 원했던 필터링 만 복사하고 세금에 트리거와 이미 마스터에 모두 세금 및 TBX 테이블을 가질 수있다 TBx 테이블을 슬레이브에 추가하십시오.