728x90
반응형
Replication은 '복제'라는 의미에 맞게 MySQL의 Master 서버의 데이터를 n개의 Slave 서버와 동기화 시켜주는 기능입니다. MySQL의 데이터를 실시간으로 백업하거나, DB서버의 부하를 분산하기 위하여 사용합니다.
구축환경
Centos 7.9
MySQL 8
Master Server: 127.0.0.1
Slave Server:127.0.0.2
Master MySQL 설정
/etc/my.cnf 편집
하단에 아래 부분 추가 후 저장 ================================ server-id=1 log-bin=mysql-bin
mysqld service 재시작
systemctl restart mysqld.service
Master와 Slave 연동 계정 생성
mysql -uroot -p <== mysql 콘솔로 접속 mysql> create user repl_user@'127.0.0.2' identified with sha256_password by '1111'; mysql> grant replication slave on *.* to repl_user@'127.0.0.2'; mysql> flush privileges; mysql> flush tables with read lock; <== Master DB를 Lock 상태로 전환 mysql> reset master; mysql> show master status\G; <=== File, Position 변수를 기억한 뒤, Slave 설정할 때 사용
Master 덤프파일 생성(Slvae Database에 적용)
mysqldump -u root -p -B --routines DATABASE_NAME > dump_file.sql 저장한 덤프파일을 Slave Server에 옮김
Slave MySQL 설정
/etc/my.cnf 편집
파일 하단에 아래의 내용 삽입 후 저장 ================================ server-id=2 log-bin=mysql-bin
mysqld 서비스 재시작
systemctl restart mysqld.service
Master의 덤프파일로 데이터베이스 생성 및 Master 연결 설정하기
mysql> source /저장된 경로/dump_file.sql mysql> stop slave; mysql> reset slave; mysql> change master to -> master_host='127.0.0.1', -> master_port=3306, -> master_user='repl_user', -> master_password='1111', -> master_log_file='파일명', <=== Master status의 File -> master_log_pos=번호; <=== Master status의 Position mysql> start slave;
Master DB Unlock
Master server의 MySQL에 접속한 뒤
mysql> unlock tables;
728x90