본문 바로가기
PM으로 성장하기/개발 공부

MSR(Multi Source Replication)

by 고양이 고씨 2023. 5. 10.

MSR(Multi Source Replication)

https://dev.mysql.com/blog-archive/mysql-5-7-6-introducing-multi-source-replication/

여러 개의 Master DB를 1개의 Slave(Replica) 인스턴스에 연결하여 복제하는 구조로, Master DB를 하나의 Slave(Replica)에 모으는 역할을 한다. 각각의 Master를 Channel을 통해 연결하고, 이 Channel은 Replication 연결에 사용되는 Thread를 관리한다. Master DB란 데이터 원본 서버를 의미하며 데이터의 변경을 담당하고, Slave DB는 백업서버로서 데이터의 읽기 역할을 수행한다.

복제는 아래의 순서로 진행된다.

1. 보통 Master DB에서 데이터가 변경되면,

2. 변경이력이 Binary Log로 저장되고,

3. 관련 이벤트들이 Slave DB에 넘어가며,

4. Slave IO Thread에서 이를 캐치하면,

5. Binary Log를 Slave DB 각각의 Relay Log에 저장하고,

6. Slave SQL Thread에서는 Relay Log를 읽어 Slave DB를 업데이트한다.

이러한 MSR은 백업을 하거나, 로그를 통합하거나, 배치작업으로 DB간 데이터를 복사하거나 등을 수행하기 위해 데이터를 한 곳에 모아야할 때 매우 유용하다.

취업포털사이트 사람인(saramin)의 경우 MSA 구조로 개선하면서 이슈에 대응하기 위해 MSR을 도입했다고 하였다. MSA를 통해 서비스와 DB를 분리하였으나, 내부에서 필요한 데이터 동기화, Master DB 참조 문제, 지표 조회 등을 위해 JOIN 및 데이터 추출이 필요하는 내부 이슈가 있었다고 한다.

 

Replication

Replication이란 복제라는 뜻으로, 데이터베이스를 복사하여 다른 사람의 작업에 방해하지 않고 자신의 작업과 관련된 데이터에 빠르게 액세스할 수 있는 분산 데이터베이스를 만들 수 있다. 이러한 데이터베이스의 복제에는 두 가지 유형이 있다.

1. 비동기 복제: 데이터가 클라이어트에서 복제본을 가져오는 서버에 전송이 될 때, 서버가 확인 메시지를 보낸다. 복제는 백그라운드에서 발생하기 때문에, 편의성과 유연성을 제공한다. 하지만 복제 프로세스 전에 확인이 되므로 데이터가 손실될 위험이 있다.

2. 동기식 복제: 데이터가 클라이언트에서 복제본을 가져오는 서버에 전송이 된 다음, 알리기 전에 모든 복제 서버로 복제하는 것이다. 시간이 많이 걸려도 데이터가 성공적으로 복제되었음을 알 수 있다.

 


참고자료

MySQL MSR Replication 구성 - Multi Source Replication, https://hoing.io/archives/18540

DB(Master&Slave 개념 및 구조), https://jung-story.tistory.com/118

DB Master, Slave 개념, https://velog.io/@sweet_sumin/DB-Master-Slave-%EA%B0%9C%EB%85%90

레플리카, https://velog.io/@sweet_sumin/%EB%A0%88%ED%94%8C%EB%A6%AC%EC%B9%B4

Mysql multi-source-replication이란, https://sarc.io/index.php/mariadb/1770-mysql-multi-source-replication

MySQL MSR(Multi-Source Replication) 도입 사례, https://saramin.github.io/2020-11-09-MSR/

[MySQL] MSR(Multi Source Replication), https://yunhyeonglee.tistory.com/44

database replication, https://www.techtarget.com/searchdatamanagement/definition/database-replication

728x90

댓글