양방향 복제는 서로가 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
'스마트웹앱콘텐츠전문가 > 데이터베이스' 카테고리의 다른 글
[Mysql]boolean값 사용 (0) | 2020.06.26 |
---|---|
[MySql]문자열 치환 (0) | 2020.05.21 |
[MSSQL]인덱스, 프로시저, 트리거, 커서 (0) | 2019.08.12 |
[MSSLQ]프로시저 조회 (0) | 2019.07.03 |
[MSSQL]BETWEEN을 이용한 날짜 조건 조회 (0) | 2019.03.29 |