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;

+ Recent posts