본문 바로가기
study/Database

db master slave (mariadb) db 복제

by 땅콩잉 2021. 10. 1.
728x90
master db가 있는 서버에서 진행

db 백업 후 db 백업용 서버로  옮긴다.

#mysqldump -u root -p --all-databases > db_bac.sql

#scp -i /etc/ssl/certs/test.pem db_bac.sql centos@192.168.1.20:/home/centos

 

복사용 계정 만들고 복사할 권한만 부여한다. 

192.168.1.20 : slave 디비 서버 내부 아이피

MariaDB [(none)]> create user backup@'백업서버 내부 ip' identified by 'password';

MariaDB [mysql]> grant replication slave on *.* to backup@'192.168.1.20';

 

권한 확인

MariaDB [mysql]> show grants for backup@'192.168.1.20'

 

다음 파일 열어서 [mariadb] 밑으로 세줄 추가

#vi /etc/my.cnf.d/server.cnf

[mariadb]

server-id = 1

log-bin

log-basename=master1

 

저장후 재시작

#systemctl restart mariadb

 

mysql 접속해서 마스터상태 확인 , 나중에 file,position 값 써야함

MariaDB [mysql]> show master status

 

slave db가 있는 서버에서 진행

파일 열고 [mariadb] 밑으로 세줄 입력 , server-id는 마스터 아이디랑 안겹치게 한다.

#vi /etc/my.cnf.d/server.cnf

[mariadb]

server-id = 2 

log-bin

report-host=slave1

 

디비 재시작 후 슬레이브 확인

#systemctl restart mariadb

MariaDB [mysql]> show variables like 'server_id';

 

 host, user name , 위에서 사용한다했던 file,position을 넣고 실행.

CHANGE MASTER TO MASTER_HOST='마스터디비서버내부ip', MASTER_PORT=3306, MASTER_USER='backup', MASTER_PASSWORD='password', MASTER_LOG_FILE='master1-bin.000001', MASTER_LOG_POS=330;

 

시작

MariaDB [(none)]> start slave;

 

master db 테이블 중 값 하나 아무거나 바꾸고 slave 쪽에 보면 똑같이 바뀌어있다.

댓글