Master Database
1. /etc/my.cnf 또는 /etc/mysql/my.cnf
server-id = 1
log-bin=mysql-bin
#binlog_do_db = include_database_name
#특정 DB 만 로그에 남길 경우
#binlog_ignore_db = include_database_name
#특정 DB 에 대해 로그 제외
2. mysql 의 master db 로 접속 할 replication 계정 생성
mysql>grant replication slave on *.* to 'proxy(user id)'@'%' identified by 'proxy(user id)';
3. 데이터 백업을 위한 테이블 lock
mysql>flush tables with read lock;
4. 로그 시퀀스 번호 확인
mysql>show master status;
여기서 position 항목은 나중에 쓸 항목이므로 기억해 두어야 함
5. mater Database 데이터 백업
mysqldump -u user_id -p DB명 > mysql_backup.sql
6. 3번 단계에서 했던 lock 을 해제함
mysql>unlock tables;
7. Master Database 재구동
mysqld restart
Slave Database
1. Master Database 에서 백업 받은 파일 복원
mysql -u user_id -p < mysql_backup.sql
2. my.cnf 수정
server-id=2
log-bin=mysql-bin
3. Slave Database 셋팅
#만약 새로 시작하는게 아니라면
#RESET SLAVE;
#STOP SLAVE;
mysql>change master to
->master_host='xxx.xxx.xxx.xxx',
->master_user='proxy',
->master_port=3306,
->master_password='05ghcjfl',
->master_log_file='mysql-bin.000007',
->master_log_pos=107;
만약 특정 DB 만 replication 하도록 지정하고 싶다면
Replicate_Do_DB='test1' 이렇게 지정하면 됨
4. Slave Database 재시작
START SLAVE;
댓글