Simple is IT, 누구나 보고 누구나 깨닫는 IT

DB 이중화(DB Master, Slave) 본문

Simple is IT/Database

DB 이중화(DB Master, Slave)

currenjin 2020. 5. 5. 22:58

DB 환경은 MySQL로 진행을 한다.

MySQL 설치 및 기본 셋팅

방화벽 설정은 기본이다 !!!!!!!!

setenforce 0

systemctl stop firewalld

MySQL Installing

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

systemctl restart mysqld

MySQL root 패스워드 설정

cat /var/log/mysqld.log | grep root@localhost

기존 설정된 패스워드 확인 후

mysql_secure_installation

mysql -u root -p

접속 확인

Master DB 설정

vi /etc/my.cfg

[mysqld]

server-id = 1

log-bin = mysql-bin

추가 후

systemctl restart mysqld

DB에 접속을 한다.

show master status;

// master db 상태 확인 명령, !! 이때 나오는 Log Number와 Position Number를 잘 기억하자.

#Replication 시 사용할 계정을 생성한다.

grant replication slave on *.* to '[Username]'@'[SlaveDB IP Address]' identified by '[Password]';

select * from mysql.user where user='[Username]'\G

--> Repl_cslave_priv: Y 되어있으면 OK

DB 데이터 백업 및 복구

mysql> flush tables with read lock;

mysql> quit

# mysqldump -u root -p -all-databases > dump.db

// 해당 DB파일들을 dump.db 파일에 저장

# ls -al

백업된 해당 파일을 DB에 적용시키는 방법을 진행하는 방법

-> # mysql -u root -p < dump.db

Slave DB 설정

vi /etc/my.cnf

[mysqld]

server-id = 2

# systemctl restart mysqld

마스터 DB의 데이터를 가져와 복구를 시킨다.

# scp [MasterDB IP Address]:/root/dump.db ./

# mysql -u root -p < dump.db

mysql>

change master to

-> master_host='[Master DB IP]',

-> master_user='[Username]',

-> master_password='Dkagh1234.',

-> master_log_file='mysql-bin.[log number]',

-> master_log_pos=[position number];

위 값들을 넣어 연동이 완료되면

show slave status;

show slave status\G

#테스트

Master에서 DB생성


Slave에서 연동 확인



Comments