-
Linux - DB 2중화스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7/Linux 2023. 5. 31. 16:01
*2중화
- master와 slave로 나눈다
- 마스터의 정보를 slave에 넣은후 동기화 한다- master : CRUD시 log 통해 Slave 서버 복제가 된다
- 백업용으로 사용한다
- master 는 쓰기용 Slave는 읽기용으로 만든다
- 이로인해 데이터 부하가 줄어든다
*방법
1. DB 이중화
(1) 네트워크 설정
(2) 방화벽 설정
setenforce 0
systemctl stop firewalld
(3) MySQL 설치
yum install -y mysql-server
systemctl restart mysqld
mysql_secure_installation
No
패스워드 설정
패스워드 한 번 더
y
y
y
y
(5) Master 설정 (MySQL1)
1) 파일 설정
vi /etc/my.cnf 파일 맨 밑에 다음 추가
[mysqld]
server-id = 1 // 순서를 통해 db를 구분한다
log-bin = mysql-bin // 로그를 저장하여 데이터가 복사되도록 한다
systemctl restart mysqld
2) Master 상태 확인
mysql -u root -p 로그인 후
show master status;
3) Replication할 때 사용할 계정 생성
CREATE USER 'slave'@'%' IDENTIFIED BY 'qwer1234';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
select * from mysql.user where user='slave'\G // \G 정돈되게 출력된다
Repl_slave_priv 속성이 Y로 되어있는지 확인
4) 현재 데이터 백업
FLUSH TABLES WITH READ LOCK; // 데이터가 더이상 저장되지 않게 하기 위해 lock
quit
mysqldump -u root -p --all-databases > dump.db dump.db 파일을 Slave로 옮긴다.
복사의 3가지 방법
scp dump.db 100.100.100.130:/root/dump.db
// lvm
// 단순 복사
mysql -u root -p
UNLOCK TABLES;
(6) Slave 설정 (MySQL2)
1) 파일 설정
vi /etc/my.cnf
[mysqld]
server-id = 2
// 동기화를 통해 복사가 되니 따로 로그를 저장하지 않는다
systemctl restart mysqld
2) 데이터 복구
mysql -u root -p < dump.db
mysql -u root -p 로 로그인
3) Master 지정 - 동기화 설정
change master to
master_host='100.100.100.30',
master_user='slave',
master_password='qwer1234',
master_log_file='mysql-bin.000001',
master_log_pos=1542;
4) 동기화 시작
start slave;
5) Slave 상태 확인
show slave status\G
2. 동기화 확인
마스터에서 INSERT문을 실행
3. 동기화 안될 때
(2) 슬레이브
stop slave;
(1) 마스터
mysqldump로 백업
(2) 슬레이브
마스터에서 백업한 파일 가져오고 복구
(1) 마스터
마스터 상태 확인
(2) 슬레이브
change master to
master_host='100.100.100.30',
master_user='slave',
master_password='qwer1234',
master_log_file='mysql-bin.[마스터의 로그 번호]',
master_log_pos=[마스터의 포지션 번호];
start slave;'스마트팩토리 개발자 교육(23.05.08 ~ 23.10.27)7 > Linux' 카테고리의 다른 글
Linux - 3계층 아키텍처 (0) 2023.05.31 Linux - 톰캣 이중화 (0) 2023.05.31 Linux - httpd, haproxy, 부하분산 (0) 2023.05.31 Linux - Log (0) 2023.05.26 Linux - DNS (0) 2023.05.26