본문 바로가기
Database/MYSQL

MySQL MSR Replication 구성 - Multi Source Replication

by 반화넬 2021. 5. 18.
반응형

1. MSR - Multi Source Replication

MySQL MSR - Multi Source Replication 는 1개의 Slave(Replica) 서버에 여러개의 Master DB를 연결하여 복제하는 구조로 여러개의 Master DB의 내용을 1곳의 Slave(Replica) 에 모으는 역활을 하게 됩니다.(Multi source 의 구조)



MySQL 5.7 에서 추가된 기능으로 통합,백업 , OLAP 및 배치 작업 등에서 유용하게 사용할 수 있습니다.

Multi Source Replication(MSR) 의 구성시에는 GTID 기반 복제 와 Binary Log Position 기반 복제 둘다 사용이 가능 합니다.


2. 파라미터 변경

MySQL MSR 구성시 Slave(Replica) 에서는 connection metadata repository 와 applier metadata repository 에 대한 정보가 TABLE 에 저장이 되어야 합니다. 그래서 master_info_repository 와 relay_log_info_repository 파라미터를 TABLE 로 설정 해야 합니다(기본값 : FILE)

그외 Replication 에서 제외 할 Metadata 관련된 데이터베이스와 복제가 수행될 Database에 대해서 명시적으로 지정하도록 하겠습니다.

Slave(Replica) 에서 my.cnf 에 아래의 내용 입력 후 MySQL 재시작 합니다.

• MySQL 5.7 기준

[root]# vi /etc/my.cnf
[mysqld]
master_info_repository = 'TABLE'
relay_log_info_repository = 'TABLE'
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys


# 5.7
replicate-do-db = m1testdb1
replicate-do-db = m1testdb2
replicate-do-db = m2testdb1
replicate-do-db = m2testdb2

[참고] 테이블별 복제 설정은 replicate-do-table 을 이용 하시면 됩니다.
replicate-do-table = 데이터베이스명.테이블명
* MySQL 5.7 기준 설정



• MySQL 8.0 기준

[root]# vi /etc/my.cnf
[mysqld]
master_info_repository = 'TABLE'
relay_log_info_repository = 'TABLE'
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys
# mysql 8.0
replicate-do-db = ch_master1:m1testdb1
replicate-do-db = ch_master1:m1testdb2
replicate-do-db = ch_master2:m2testdb1
replicate-do-db = ch_master2:m2testdb2

[참고] MySQL8.0 부터 채널별 replicate-do-db 설정이 가능하고  채널명:DB명  으로 입력 하면 됩니다.

 

 

출쳐 : https://hoing.io/archives/18540

 

MySQL MSR Replication 구성 - Multi Source Replication

반응형