Mysql replication chain 제거 및 Master 변경
위 그림과 같은 설정이 Mysql replication chain 이다.
slave DB3은 Master DB 의 Slave 이자, Slave DB4 의 Master 인 상태.
구성은 다소 어렵지 않다.
Chain 제거 및 Master 변경 작업
- Slave DB3 my.cnf 에 log-slave-updates 옵션 제거 후 Mysql restart (해당 옵션은 Chain 전용 옵션 하단 참조)
--log-slave-updates
일반적으로, 슬레이브는 마스터 서버에서 전달 받은 업데이트에 대해서는 자신의 바이너리 로그에 기록하지 않는다. 이 옵션은 SQL 쓰레드가 실행한 업데이트를 자신의 바이너리 로그에 기록하도록 만든다. 슬레이브가 바이너리 로깅을 활성화 시키기 위한 --log-bin 옵션과 함께 시작되어야 이 옵션이 적용된다. --log-slave-updates는 여러분이 리플리케이션 서버를 서로 연결 (chain) 할 때 사용하는 것이다. 예를 들면, 아래와 같은 배열을 사용해서 리플리케이션 서버를 설정한다고 가정하자:
A -> B -> C
여기에서, A는 슬레이브B에 대한 마스터 역할을 하고, B는 슬레이브 C에 대해 마스터 역할을 한다. 이렇게 동작하기 위해서는, B가 반드시 마스터인 동시에 슬레이브가 되어야 한다. 바이너리 로깅을 활성화 시키기 위해 A와 B 모두에서 --log-bin옵션을 실행해야 하고, A에서 받은 업데이트를 B가 자신의 바이너리 로그에 기록할 수 있도록 B는 --log-slave-updates 옵션을 실행해야 한다.
- Slave DB4 서버에서
mysql> stop slave;
mysql> reset slave;
후 Mysql restart 후 Master bin 포지션 확인 후 (FM은 모든 테이블을 플러시 (flush)하고 쓰기 연산 명령문을 잠근 후 Master 변경 해야함)
CHANGE MASTER TO master_host='192.168.0.170', master_port=3306, master_user='REPLICATION_ID',
master_password='REPLICATION_PASSWORD', master_log_file='MASTER.BIN.LOG.FILE', master_log_pos=MASTER POSITION;
연결,
mysql> start slave;
mysql> show slave status \G;
확인
'엔지니어 > DB' 카테고리의 다른 글
Maria DB Galera Cluster (0) | 2017.01.17 |
---|---|
oracle 10g 설치 (0) | 2017.01.17 |
MySQL 리플리케이션 상태 확인 (0) | 2017.01.17 |
Mysql 5.7.14 설치 및 replication (0) | 2017.01.13 |
mysql timezone 확인 (0) | 2017.01.02 |