Backend/Relational Databases

[Relational Databases] Database Replication 개념

lakelight 2022. 8. 10. 11:35
728x90
반응형

DB Replication

초기 서버를 구성할 때는 하나의 서버와 하나의 데이터베이스를 구성하지만, 사용자 많아지고, 데이터베이스에 많은 Query가 발생하게 되면 이 트래픽을 처리하기 힘든 상황까지 오게됩니다.

Query의 대부분을 차지하는 Select를 어느 정도 해결하기 위해 Replication 이라는 방법이 나오게 되었습니다.

Replication두 개 이상의 DBMS 시스템Master / Slave로 나눠서 동일한 데이터를 저장하는 방식입니다.

이미지 출처: https://nesoy.github.io/articles/2018-02/Database-Replication

Master DBMS에는 데이터의 수정사항을 반영하고, Rplication 하여 Slave DBMS에 실제 데이터를 복사합니다.

, Replication은 실시간 복제본 데이터베이스 서버운용하는 것을 의미합니다. 기준이 되는 서버는 마스터 서버, 동일한 내용을 갖는 또 다른 서버를 리플리카라고 합니다.

 

데이터베이스 리플리케이션의 목적 & 응용

리플리카 서버는 백업본을 이용했을 때 발생하는 백업 시간과 장애 발생 시간 사이의 데이터를 모두 잃는 문제를 해결 할 수 있습니다. 리플리카 서버는 약간의 딜레이가 있지만 거의 실시간으로 마스터 서버와 동일한 데이터를 갖고 있기 때문에 장애 복구 시 데이터 소실최소화 됩니다.

그래서 보통 마스터 서버의 문제발생하면 리플리카 서버를 마스터 서버로 승격시키고, 새로운 마스터 서버에 대한 리플리카 서버를 생성하면 복구가 완료되는 방식입니다.

리플리카 서버는 기본적으로 읽기전용으로 운용됩니다. 이러한 특성을 활용하여 데이터베이스 서버의 부하를 줄이고 Access 하는 어플리케이션의 동작 성능을 개선할 수 있습니다.

데이터의 Access 시간이 중요한 읽기쓰기 SQL 작업은 마스터 서버에 접속하여 수행하고, 데이터의 Access 시간이 중요하지 않은 읽기전용 작업은 리플리카 서버에 접속하여 수행하도록 합니다.

 

Replication 로그 기반 복제

Statement Based: SQL 문장복사하여 진행합니다. SQL에 따라 결과가 달라지는 경우 문제가 됩니다. 예를 들면 Timestamp, UUID자동 생성을 할 때 문제가 됩니다.

Row Bases: SQL에 따라 변경된 Row 라인기록하는 방식입니다. 데이터가 많이 변경된 경우에는 데이터가 커질 수 있어 주의가 필요합니다.

Mixed: 기본적으로 Statement Based로 진행하면서 필요에 따라 Row Based를 사용합니다.

 

[참고]

1. Database의 리플리케이션 - Nesoy Blog

2. 데이터베이스 리플리케이션 - 쿠빌

728x90
반응형