스마트웹앱콘텐츠전문가/데이터베이스

mysql replication(양방향 복제)

9D4U 2019. 12. 3. 11:23
728x90
반응형

양방향 복제는 서로가 master임과 동시에 slave라는 의미.

-------환경-----

db 서버1(mariadb) - 192.168.0.32(centos7)

db 서버2(mariadb) - 192.168.0.69(centos7)

 

mariadb는 서버1,2 모두 동일한 버전

-----------------

 

[공통 사항 : 서버1과 서버2 모두 적용]

1. replication 계정을 생성

mysql> grant replication slave on *.* to 'repl_user'@'192.168.%' identified by 'test456';

 

[서버1]

1. my.cnf 수정

~]# vi /etc/my.cnf

[mysqld]에서 log-bin과 server-id 내용을 추가한다.

 

2. 서비스 재시작

~]# systemctl restart mariadb

 

3. my.cnf 수정 내용 적용되었는 지 확인.

mysql > show variables like 'server_id';

 

4. 서버2에서 작업해주어야 할 값들 확인.

mysql > show master status\G;

File값과 Position값 기억.

[서버2]

1. my.cnf 수정

~]# vi /etc/my.cnf

[mysqld]에서 log-bin과 server-id 내용을 추가한다.

 

2. 서비스 재시작

~]# systemctl restart mariadb

 

3. my.cnf 수정 내용 적용되었는 지 확인.

mysql > show variables like 'server_id';

 

4. 서버1에서 작업해주어야 할 값들 확인.

mysql > show master status\G;

File값과 Position값 기억.

[서버1]

서버2에서 확인한 File, Position값을 가지고, Master 서버로 연결 설정

(mysql > stop slave;) 

mysql> change master to master_host='192.168.0.69', master_user='repl_user', master_password='test456', master_log_file='mysql-bin.000008', master_log_pos= 245;

(mysql > start slave; )

[서버2]

서버1에서 확인한 File, Position값을 가지고, Master 서버로 연결 설정

(mysql > stop slave; ) 생략가능

mysql > change master to master_host='192.168.0.32', master_user='repl_user', master_password='test456', master_log_file='mysql-bin.000007', master_log_pos= 1571;

(mysql > start slave; ) 생략가능

 

 

cf) Master 설정은 my.cnf 에서도 가능함.

 

[공통]

DB 서버 재시작

~]# systemctl restart mariadb;

 

결과 확인 :

서버1, 서버2에서 

결과 중 Slave_IO_Running, Slave_SQL_Running이 Yes로 되어 있는지 확인.

 

참조 : https://server-talk.tistory.com/240

 

728x90