서버를 한 대만 사용할 것인가.
여러 대를 사용할 것인가
Replication
Cluster
리눅스 pc 2대
1. DB 이중화
(1) 네트워크 설정
(2) 방화벽 설정
setenforce 0
systemctl stop firewalld
(3) MySQL 설치
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server
systemctl restart mysqld
(4) MySQL root 패스워드 설정
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 // mysql이 동작하는 부분 log (binary로 저장)
systemctl restart mysqld // 항상 설정파일 변경 후 systemctl로 재시작해줘야 함.
2) Master 상태 확인
mysql -u root -p 로그인 후
show master status;
// insert, update, delete는 master에.
// select는 slave에.
// -> 분산되어 있기 때문에 부담 낮아짐.
// => select가 많아진다면?
// => slave를 추가하면 된다.
3) Replication할 때 사용할 계정 생성
CREATE USER '[이니셜]'@'[MYSQL2의 IP주소]' IDENTIFIED BY '[패스워드]';
GRANT REPLICATION SLAVE ON *.* TO '[이니셜]'@'[MySQL2의 IP주소]' IDENTIFIED BY 'Dkagh1.';
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 // slave는 server-id만 설정
systemctl restart mysqld
2) 데이터 복구 - 일단 생략
mkdir /[이니셜]
mount [MySQL1의 IP]:/[이니셜] /[이니셜]
cd /[이니셜]
mysql -u root -p < dump.db
3) 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=[마스터의 포지션 번호];
4) 동기화 시작
start slave;
5) Slave 상태 확인
show slave status;
또는
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_SQL_Running_State 등 확인
2. 동기화 안될 때
(2) 슬레이브
stop slave;
(1) 마스터
mysqldump로 백업
(2) 슬레이브
마스터에서 백업한 파일 가져오고 복구
(1) 마스터
마스터 상태 확인
(2) 슬레이브
change master to 명령어로 설정
start slave;
3. 동작 확인
(1) 마스터, 슬레이브에서 DB 확인
show databases;
(2) 마스터에서 DB 생성
CREATE DATABASE [DB이름];
(3) 마스터, 슬레이브 에서 DB 확인
show databases;
이 때 양쪽에 DB가 생성되어 있어야 한다.
change master to
-> master_host='110.110.xxx.xx2',
-> master_user='ltw2',
-> master_password='1234',
-> master_log_file='mysql-bin.000004',
-> master_log_pos=1864;
동기화 완료
1. 쓰기 전용, 읽기 전용 역할 분담
master slave
insert select
update
delete
=> 일종의 미러 형태
2. 부하 분산
master slave
slave master
insert select
update insert
delete update
select delete
=> 일종의 미러 형태
3. DR (재난 복구, Disaster Recovery)
- A-A, A-S
- 미러
- 원본과 사본이 100% 똑같이 만들어져 있어야 함.
- 데이터도 완전 동일하고 PC 대수도 똑같아야 함.
- Active-Active
- 서비스 기업의 경우 거의 대부분 미러 형태로 되어 있음.
- 핫
- 원본과 사본이 100% 똑같이 만들어져 있음.
- Active - Stanby
- 켜기만 하면 바로 Active한 상태
- 하나가 뻗으면 자동으로 켜져서 구성되도록 설정하는 형태
- 웜
- 사본이 원본만큼 구성되지는 않아도 데이터는 다 갖고 있는 상태
- 콜드
- 데이터만 갖고 있는 상태
- 서비스 수준
- 365/24
- 99.9% 이상
- 99% 이상
- 95% 이상
안녕하세요~한화과정어떤가요
비전공자 나이많은취준생입니다.