본문 바로가기
인프라

mysql replication (리플리케이션) 설정

by IT맥구리나스 2022. 4. 16.

필자의 테스트 서버는 centos7이지만 어플리케이션 설정이기 때문에 cenots건 우분투건 OS는 상관없다.

 

필요 환경

  • Master DB
  • Slave DB

 

통신상태 확인

telnet 명령어로 통신 상태를 확인한다. 

telnet 192.168.171.130 3306

telnet 명령어 수행 시 비정상이면 반응이 없고 정상이면 아래와 같은 화면이 나온다.

telnet을 통한 확인

 

MasterDB 설정

my.cnf 설정

[mysqld] 아래에 아래 내역을 넣어주고 재시작한다.

[mysqld]
log-bin=mysql-bin
server-id=1

 

systemctl restart mysqld

 

replication에 사용될 계정 생성

mysql에 접속하여 아래 명령어 수행

아이디 : repl 패스워드 : Wkawhawkwk123!

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'Wkawhawkwk123!';

 

Slave DB 설정

my.cnf 설정

[mysqld]
server-id=2

 

mysqld 재시작

systemctl restart mysqld

 

replication에 사용될 계정 생성

mysql에 접속하여 아래 명령어 수행

아이디 : repl 패스워드 : Wkawhawkwk123!

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'Wkawhawkwk123!';

 

DB replication 설정

stop slave ;
change master to master_host='192.168.171.130', master_user='repl', master_password='Wkawhawkwk123!', master_port=3306, master_connect_retry=3;
start slave ;

 

설정 완료 확인

Master서버 Slave서버 각각 확인하는 방법이 다르다

 

Master서버에서 확인방법

아래 명령어를 수행하여 리스트 중 Host에 SlaveDB서버 IP  command컬럼에 Binlog Dump가 있는 raw가 있으면 성공

show processlist ;

 

Slave서버에서 확인방법

msterDB의 LogFile,  Positon이 같고 Slave_IO_Running Slave_SQL_Running가 모두 yes여야 한다.

show slave status \G;

 

리플리케이션 동작 테스트

database 생성 삭제를 통한 리플리케이션 동작 확인

💡 알아야 할 것

  • 해당 설정은 단방향 동기화 방식으로 A -> B로 데이터가 동기화되는 방식이다.
  • 리플리케이션 설정 이후의 데이터를 동기화한다, 이전의 데이터는 동기화하지 않는다.
  • 그러므로 master DB를 백업 후 Slave에 복원하여 DB 데이터를 맞춘 후 리플리케이션 설정을 해야 한다.
반응형

댓글