Replication 설정을 시작하기 전에
http://jmkjb.tistory.com/entry/SetupMySQL5525 에 게시된 글처럼
MySQL 5.5.25가 설치되어있다는 전제 하에 진행함.
Master가 되는 장비와 Slave가 되는 장비는 모두 동일한 스펙이며, 동일한 MySQL 버전임.
-- Master DB 작업 순서 및 내역
1. /etc/my.cnf (기본적으로 셋팅되어 있기 때문에 수정할 내용은 없고, 아래와 같이 셋팅되어있는지 확인)
server-id = 1
log-bin=mysql-bin
2. Master DB로 접속할 Replication 계정 생성
mysql> grant replication slave on *.* to 'master_user'@'%' identified by 'master_user';
3. 데이터 백업을 위한 테이블 Lock 및 현재 로그 시퀀스 번호 확인
mysql> flush tables with read lock;
mysql> show master status;
아래의 그림은 2~3번 과정.
4. 데이터 백업 및 백업 파일 Slave DB로 이동, 복원
mysqldump -u root -p --all-databases > all_databases.sql
아래의 그림은 데이터 백업
Slave DB로 이동은 scp 또는 ftp로 전송한다.
5. 3번 단계에서의 Lock을 해제
mysql> unlock tables;
6. Master DB 재시작 (/etc/my.cnf 의 변경이 없었다면, 재시작할 필요없음.)
/etc/rc.d/init.d/mysql stop
/etc/rc.d/init.d/mysql start
-- Slave DB 작업 순서 및 내역
7. /etc/my.cnf
server-id = 2
log-bin=mysql-bin
8. Master DB에서 백업받은 데이터를 복원
아래의 그림은 Slave DB로 복사된 Master DB 데이터 백업 파일을 복원
9. Slave DB 재시작
(지금 상황처럼, 데이터베이스 전체를 받아 초기화되어있는 MySQL로 복원한 경우에는 재시작을 해준다.)
/etc/rc.d/init.d/mysql stop
/etc/rc.d/init.d/mysql start
10. Slave DB 셋팅 및 서비스 시작
-> master_log_pos=261; --> Master DB에서 show master status; 통해 얻은 로그 파일 포지션(=?시퀀스)
mysql> start slave;
11. Replication 이 정상적으로 운영되는지 확인.
Master DB
mysql> show master status;
--> Position 값 확인.
Slave DB
mysql> show slave status;
--> Read_Master_Log_Pos 값이 Master Position 값과 일치하는 확인.
Slave_IO_Running, Slave_SQL_Running 값이 Yes 인지 확인.
위의 같은 상황이라면 Replication 셋팅은 완료.
링크 : http://jmkjb.tistory.com/171