Self-Development/Study

Replication의 데이터 동기화는 어떻게 되는걸까

JeongKyun 2024. 7. 6.
반응형

레플리카 셋(Repliaca Set)에 대해 먼저 이해해보면

레플리카 셋의 주 목적은 DB의 가용성을 확보하고 장애 복구(Fail Over) 처리하기 위해 구성한다.

 

하나의 주 서버(Primary)와 하나 이상의 복제본 서버(Secondary)로 구성된다. 주 서버(Primary)는 모든 쓰기와 대부분의 읽기 작업을 처리하며, 복제본 서버(Secondary)는 주 서버의 데이터를 실시간으로 복제하여 읽기 작업을 분담하거나 장애 발생 시 주 서버를 대체하는 메커니즘이다.

 

 

어떻게 주 서버의 데이터를 복제본 서버로 Sync하는걸까?

데이터 동기화 하는 방식엔 여러 방식이 있지만, 이번엔 RDB의 처리 프로세싱에 대해서만 다뤄보려한다.

1) 빈 로그 기록 (Binary Log Recording)

primary에서 데이터 변경 사항들이 bin_log에 기록된다.

 

2) 로그 파일 전송 (Log File Transfer)

replication에서는 primary에 연결하여 bin_log 파일을 요청한다. primary는 replication 서버에 bin_log를 전송한다.

 

3) 릴레이 로그 기록 (Relay Log Recording)

replication은 primary에서 받은 bin_log를 자신의 relay_log에 기록한다.

(relay_log는 primary bin_log를 그대로 복사한거임.)

 

4) 릴레이 로그 적용 (Replay Log Application)

replication의 SQL 스레드는 relay_log에 기록된 이벤트를 순차적으로 읽어와서 해당 변경 작업을 자신에게 적용한다. 이를 통해 eventually consistency하게 primary와 동일한 데이터 상태가 유지된다.

 

 

읽고 좋았던 아티클.

https://levelup.gitconnected.com/mastering-database-replication-an-essential-guide-for-2023-9fa6deb3efe4

댓글

💲 많이 본 글