DB/MYSQL

Replication

MAKGA 2021. 10. 14. 22:54
320x100

Single Master & Single Slave

하나의 Master와 하나의 Slave로 구성된다.Master에 Insert, Update, Delete 같이 데이터가 변경되는 쿼리가 실행되면 binary log에 내용이 저장되고 쿼리가 실행된다.Slave는 그 binary log를 주시하다가 변경점이 생기면 Master에게 변경점에 대해 요청한다.그러면 Master가 binary log에 있는 쿼리를 Slave로 보내고, 응답을 받아 데이터가 전달됨을 보장받는다.Slave는 realy log에 저장되고 적용된다.

 

Single Master & Multi Slave

Single & Single과 동일한 방법대로 실행된다.

 

주로 데이터가 변경되는 Insert, Update, Delete 쿼리는 Master에, 조회하는 Select 하는 쿼리는 Slave에 요청해 부하를 분산한다.

 

Multi Master Replication Manager(MMM)

Master를 Active와 Standby로 나누어 관리하는 방식으로, 두 Master는 MMM Monitor에 의해 관리된다.

Standby는 MMM Monitor에 의해 읽기 모드로 제어된다.

 

장애 발생시 과정은 다음과 같다.

1. Active에게서 Master 역할 제거

: 읽기 모드로 변경 -> 접속 중인 세션 Kill -> 신규 세션 접속 Block 위해 VIP 회수

2. Standby로 복제 재구성

: 복제 지연 확인 -> Standby 복제 재구성 -> Standby의 읽기 모드 해제 -> 신규 세션 접속 위해 VIP 할당

 

이 방법에서 데이터 유실에 관한 문제가 발생할 수 있다.

1. Active -> Standby로 쿼리 전달

2 Active에서는 데이터 변경 실패, Standby는 쿼리 적용

3. Active가 오류로 서버 종료

4. Standby가 Active로 변경 -> 데이터 오류!

 

그래서 MHA가 나왔다.

 

Master High Availability (MHA)

MHA는 Active -> Standby로의 단방향 복제만 허용한다

장애 발생시 새로운 Active 선정시 데이터가 가장 잘 동기화 된 서버를 고른다(Standby, Slave...)

그리고 MHA Monitor가 기존 Active의 Binary log과 선택된 서버의 Relay log를 확인해 차이나는 쿼리를 DB에 반영한다.

(이후 오류가 생겨 다시 시작된 Active는 기존 Standby, Slave들과 복제 관계를 다시 설정해주어야 한다)

 

 

https://www.youtube.com/watch?v=dCVKAJ7tb70&list=RDCMUC982FhzZx87lIWCimFiry_w&start_radio=1&t=41s&ab_channel=NHNCloud 

https://velog.io/@jwpark06/MySQL-%EC%9D%B4%EC%A4%91%ED%99%94-%EC%A7%84%ED%99%94%EA%B8%B0

 

MySQL 이중화 진화기

장애 시간 = db 서버 복구 시간.이중화하지 않은 상태로 각각 db 서버를 아래와 같이 2대를 동작시킨다.master ip: 192.168.0.100slave ip: 192.168.0.200이때, master가 문제가 생기면 slave를 바라보도록 관련자들

velog.io

https://server-talk.tistory.com/241

 

MySQL Replication(복제) - 양방향 이중화

MySQL Replication(복제) - 양방향 이중화하기 지난 포스팅에서는 리플리케이션(Replication)에 대해서 알아보았는데요 리플리케이션(Replication)에서 Master서버 -> Slave서버로만 알아보았으며, 이번에는 Slav

server-talk.tistory.com

https://danidani-de.tistory.com/m/28

 

MySQL(MariaDB) Replication - DB 실시간 이중화 :: DANIDANI

MySQL(Maria DB) Replication 이란? DB 복제를 의미한다. 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이다. (master - slave, master - master, 다중 slave 방식 등) 비동기 복제 방식이다. master와 slave..

danidani-de.tistory.com

 

320x100

'DB > MYSQL' 카테고리의 다른 글

쿼리 조건에 들어갈 내용을 파라미터로 전달하기  (0) 2021.10.18
동적 쿼리 작성하기  (0) 2021.10.15
C API Asynchronous 함수 정리  (0) 2021.10.13
INSERT와 REPLACE 차이  (0) 2021.10.13
실행 계획 보기  (0) 2021.10.12