필자의 테스트 서버는 centos7이지만 어플리케이션 설정이기 때문에 cenots건 우분투건 OS는 상관없다.
필요 환경
- Master DB
- Slave DB
통신상태 확인
telnet 명령어로 통신 상태를 확인한다.
telnet 192.168.171.130 3306
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;
리플리케이션 동작 테스트
💡 알아야 할 것
- 해당 설정은 단방향 동기화 방식으로 A -> B로 데이터가 동기화되는 방식이다.
- 리플리케이션 설정 이후의 데이터를 동기화한다, 이전의 데이터는 동기화하지 않는다.
- 그러므로 master DB를 백업 후 Slave에 복원하여 DB 데이터를 맞춘 후 리플리케이션 설정을 해야 한다.
반응형
'인프라' 카테고리의 다른 글
Command "python setup.py egg_info" failed with error code 1 (0) | 2022.04.22 |
---|---|
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend (0) | 2022.04.19 |
Failing package is: mysql-community-libs-compat-5.7.37-1.el7.x86_64 (0) | 2022.04.15 |
sysmon winlogbeat elk 연동하기 (0) | 2022.04.14 |
mysql ERROR 1418 (HY000) at line 12460 에러 처리방법 (0) | 2022.03.23 |
댓글