MASTER
하나의 일을 수행하는데에 있어 동작의 주체가 되는 역할
모든 다른 슬레이브(종국)들을 제어하고 명령하는 주체
SLAVE
종속적인 역할을 하는 것
주로 마스터의 지시에 따라 행동
DB물리설계
서버를 한대만 쓸 것인지 여러대를 쓸 것인지 구상하고
오브젝트, 접근방법, 트랜잭션분석, 인덱스, 뷰, 데이터베이스 용량설계 등을 수행을 설계
Replication
여러 개의 DB를 권한에 따라 수직적인 구조로 두 개의 이상의 DBMS 시스템을 Mater / Slave로 나눠서 동일한 데이터를 저장하는 방식이다
Master Node는 쓰기 작업 만을 처리하며 Slave Node는 읽기 작업 만을 처리한다.
비동기 방식으로 노드들 간의 데이터를 동기화한다.
원본인 Master는 insert, update, delete를 수행 가능
사본 Slave는 select문 (읽기) 만 수행 가능하다
Slave 가 Master 의 로그를 보고 복사한다.
DB Master와 Slave 생성
1. DB 이중화
(1) 네트워크 설정
(2) 방화벽 설정
setenforce 0
systemctl stop firewalld
(3) MySQL 설치 및 실행
3-1) yum install mysql-server
3-2) systemctl restart mysqld
(4) MySQL 초기 설정
mysql_secure_installation
No
패스워드 입력
패스워드 입력
y
y
y
y
(5) Master 설정 (MySQL1)
1) /etc/my.cnf.d/mysql-server.cnf 파일 수정
//내가 편집할 파일의 경로를 정확히 파악 후 입력한다
[mysqld] 밑에 다음 내용을 추가한다.
server-id = 1
log-bin = mysql-bin
1-2) systemctl restart mysqld
2) Master 상태 확인
mysql -u root -p 로그인 후
-> show master status;
3) Replication할 때 사용할 계정 생성 및 권한 부여
CREATE USER '[이니셜]'@'[MySQL2의 IP주소]' IDENTIFIED BY '[패스워드]';
//->slave로 사용할 mysql2의 ip 주소를 잘 확인할 것
GRANT REPLICATION SLAVE ON *.* TO '[이니셜]'@'[MySQL2의 IP주소]'
select * from mysql.user where user='[이니셜]'\G
-> Repl_slave_priv 속성이 Y로 되어있는지 확인
(6) Slave 설정 (MySQL2)
1) /etc/my.cnf.d/mysql-server.cnf 파일 수정
[mysqld]밑에 다음 내용을 추가한다.
-> server-id = 2
systemctl restart mysqld
2) Master 지정
mysql -u root -p
change master to
master_host='[마스터 컴퓨터의 IP 주소]',
master_user='[마스터에서 만든 slave용 계정 이름]',
master_password='[마스터에서 만든 slave용 계정의 PW]',
master_log_file='mysql-bin.[마스터의 로그 번호]',
master_log_pos=[마스터의 포지션 번호];
3) 동기화 시작
start slave;
4) Slave 상태 확인
show slave status;
또는
show slave status\G
//\G: 세로로 출력되는 것을 가로로 출력
Slave_IO_Running: Yes Slave_SQL_Running: Yes
Slave_SQL_Running_State 등 확인
2. 동기화 안될 때
(1) 슬레이브
stop slave;
(2) 마스터
마스터 상태 확인
(3) 슬레이브
change master to 명령어로 설정
start slave;
3. 동작 확인
(1) 마스터, 슬레이브에서 DB 확인
show databases;
(2) 마스터에서 DB 생성
CREATE DATABASE [DB이름];
(3) 마스터, 슬레이브 에서 DB 확인
show databases;
이 때 양쪽에 DB가 생성되어 있어야 한다.
'bootcamp > 데이터베이스' 카테고리의 다른 글
1108 yum 설치 오류, mysqlsh 클러스터 생성 오류 (0) | 2023.12.22 |
---|---|
1107 뷰와 인덱스 (0) | 2023.12.22 |
1103 -3) 조별 코테 (0) | 2023.12.17 |
1103 -2)SQL2 - select문 (1) | 2023.12.17 |
1103 -1) SQL1 - 정규화 (1) | 2023.12.17 |