최근 DB PM 작업을 진행하였습니다. Master DBMS 패치 작업을 하기 위해 사용하는 서비스 담당자들이 단체방에 초대되어 진행하였습니다. Rescue(대체 서버) DBMS에 각 서비스 커넥션 연결 후 작업 진행 그리고 다시 Master DBMS로 연결하는 작업을 진행하였습니다. 단체방에서 각 서비스마다 커넥션을 옮기고 DBA는 접근이 있는지 확인 후 작업을 진행하였습니다.
작업 진행사항을 공유 하던중 리플리케이션 종료라는 내용을 공유받았고 리플리케이션을 잘 알지 못해 한번 찾아보았습니다.
Replication 이란
복제를 의미하며 2대 이상 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기 위한 최소 구성은 Master / Slave를 구성한다.
회사를 입사하기 전 DB 구성은 위에 그림처럼 하나의 DB를 구성하는 줄 알았습니다.
하지만 실제 운영 중인 서비스의 DB구조는 아래 그림처럼 Master / Slave (Rescue)로 구성되어 있었습니다.
Master DBMS에는 CRUD를 작업을.. Slave DBMS에는 R작업이 가능하도록 구성되어있었습니다.
아래처럼 구성을 하는 이유는 실시간 Data 백업과 여러 대의 DBMS의 부하를 분산 시킬수 있는 장점이 있습니다.
또한 리플리케이션을 이용해 같은 데이터를 가지는 여러대의 DB를 구성할 수 있습니다.
구성이 어떻게 되어있는지는 알고 있었지만 Master와 Slave가 동일한 데이터를 저장하는 방식이 리플리케이션이라는 건 몰랐습니다.
Master DBMS 역할
웹 서버로부터 데이터 CUD 요청 시 바이너리 로그(Binarylog)를 생성하여 Slave로 전달.
Slave DBMS 역할
Master DBMS로부터 전달받은 바이너리 로그(Binarylog)를 데이터로 반영함.
<참조>