1. Master DB LOCK
- Master 서버의 장애로 인해 변경하는 것이 아닌 경우 데이터 변경을 막기 위해 LOCK을 걸고 진행
- 기존 Matser 서버에서 실행
mysql>FLUSH TABLES WITH READ LOCK;
2. Slave → Master 설정
1) replication 계정 생성
- Slave 서버를 Master 로 변경하기 위해 Slave 서버에도 replication 계정 생성
mysql>grant replication slave on *.* to repl_user@'121.000.000.000' identified by 'test!@#$';
2) Slave 종료
mysql> stop slave;
mysql> show slave status\G → 정상 종료 확인
3) master 설정 추가
# vi /etc/my.cnf
----------------------------------------------------------------------------------------------
[mysqld]
server-id=2
log-bin=mysql-bin → binary log 파일 경로 설정 추가
binlog-do-db='repltestdb' → replicate-do-db 에서 binlog-do-db로 변경
binlog-ignore-db='testdb' → replicate-ignore-db 에서 binlog-ignore-db로 변경
#read_only → read_only 설정 주석 또는 제거
----------------------------------------------------------------------------------------------
* 만약 log-bin=mysql-bin 설정이 이미 되어있는 경우에는 삭제 (재구동시 자동으로 생성)
# rm -f mysql-bin.*
# /etc/init.d/mysql.server restart → 재구동하여 적용
4) Master 서버 정보 확인
mysql> show master status;
3. Master -> Slave 설정
1) slave 설정 추가
----------------------------------------------------------------------------------------------
[mysqld]
server-id=1
replicate-do-db='repltestdb' → binlog-do-db 에서 replicate-do-db 로 변경
replicate-ignore-db='testdb' → binlog-ignore-db 에서 replicate-ignore-db 로 변경
skip-slave-start
read_only → DB 데이터가 변경되는 것을 막기 위해 추가
----------------------------------------------------------------------------------------------
# /etc/init.d/mysql.server restart → 재구동하여 적용
2) master 연결 설정
mysql> change master to
master_host='121.000.000.000',
master_user='repl_user',
master_password='test!@#$',
master_log_file='mysql-bin.000001',
master_log_pos=154;
3) Slave 시작
mysql> start slave;
mysql> show processlist\G → 연결 확인
4. replication 구성 확인
1) Master 서버에서 프로세스 연결 확인
mysql>show processlist\G
* State 에서 binlog를 slave로 전송하였으며 업데이트 대기중인 상태 확인
2) Slave 서버에서 확인
mysql>show processlist\G
* State 에서 log를 읽었으며 업데이트 대기중인 상태 확인
mysql> show slave status\G
3) replication 확인
1) Master 서버 DB 데이터 입력
mysql>insert into user(no,name,det,tel) values(9,'Css','Lang'.'070-1234-1234');
2) Slave 서버에서 DB 조회하여 확인
mysql>select * from user;
'MySQL,MariaDB > 설정' 카테고리의 다른 글
mysql partition table 설정 (0) | 2022.08.19 |
---|---|
mysql 8.0 이상 caching_sha2_password authentication error 조치 방법 (0) | 2022.08.19 |
MySQL Replication Error 오류 확인 (0) | 2022.08.19 |
[CentOS] mysql replication (단방향) (0) | 2022.08.19 |