Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

ITFragile

[Linux] 03. DB 이중화 본문

Project

[Linux] 03. DB 이중화

경요 2023. 3. 15. 15:31

DB Server Info

db-01 : 192.168.56.230

db-02 : 192.168.56.240

 

# 사전작업
Master에 있던 모든 데이터베이스 Slave로 백업하여 옮기기

 

# db-01
mysqldump --all-databases -u root -p > db.dump
scp db.dump vagrant@db-s:/tmp

# db-02
mysql -u root -p < /tmp/db.dump

[db-02]

백업한 파일 정상적으로 받아옴

1. 계정 생성

grant replication slave ON *.* TO rep@'%' identified by 'dkagh1.';
flush privileges;

# 해당 계정은 replication slave을 연결하는 관리자 계정이므로 동기화 이후에는 어떤 계정을 사용 하던 상관 없다

Master - Slave 연결 계정 생성

 

2. Master 설정

# vim /etc/mysql/mariadb.conf.d/50-server.cnf
 27 bind-address            = 0.0.0.0  
 68 server-id = 1		#변경 - 주석제거
 69 log_bin = /var/log/mysql/mysql-bin.log		#변경 - 주석제거

3. mariadb 재시작

service mariadb restart

4. Slave 설정

# vim /etc/mysql/mariadb.conf.d/50-server.cnf

 bind-address	= 0.0.0.0	
 server-id = 2	# maste와 다른 값으로 설정
 relay_log=mysql-relay-bin		#추가
 log_slave_updates = 1			#추가
 read_only = 1				#추가
 innodb-read-only = 1			#추가-일관성데이터유지

 

5. mariadb 재시작

service mariadb restart

6. 동기화 설정

# Master
mysql -u root -p
show master status \G

Master Mysql 접속 후 마스터 상태 확인

# Slave
mysql -u root -p
stop slave;
CHANGE MASTER TO
     -> MASTER_HOST='192.168.56.230',	# Master IP 주소 부여	
     -> MASTER_PORT=3306,
     -> MASTER_USER='rep',
     -> MASTER_PASSWORD='dkagh1.',
     -> MASTER_LOG_FILE='mysql-bin.000005',  # Master log file name
     -> MASTER_LOG_POS=1222;
     
start slave;

Slave 접속 후 Master 정보 넣어준다

 

7. 동기화 확인

# Slave
mysql -u root -p
show slave status \G

 

[db-01] 

Master 접속 후 create database web_test2; 로 DB 생성 후 테스트

[db-02]

정상적으로 동기화됨

 

'Project' 카테고리의 다른 글

[Ansible] 02. Playbook 작성  (0) 2023.03.15
[Ansible] 01. 작업 환경 구성  (0) 2023.03.15
[Linux] 04. WEB - DB 로드밸런싱  (0) 2023.03.15
[Linux] 02. WEB - DB 연동  (0) 2023.03.15
[Linux] 01. 작업 환경 구성  (0) 2023.03.15