Database
DB Replication
TedDev
2024. 12. 9. 17:12
728x90
DB Replication(데이터베이스 복제)은 데이터를 한 데이터베이스 서버에서 다른 서버로 복제하여 여러 복사본을 유지하는 기술이다. 이 과정은 데이터의 가용성과 성능을 높이고 장애 복구 및 확장성을 제공하기 위해 사용된다.
DB Replication의 주요 목적
- 고가용성(High Availability) : 한 서버가 다운되더라도 다른 복제본 서버에서 데이터를 제공할 수 있도록 보장
- 부하 분산(Load Balancing) : 읽기 작업을 여러 서버에 분산시켜 성능 향상
- 장애 복구(Fault Tolerance) : 원본 데이터베이스가 손상되더라도 복제본으로 복구 가능
- 데이터 배포(Data Distribution) : 여러 지역이나 지점에 데이터 동기화 가능
DB Replication의 유형
- Master-Slave Replication
- 구조 : 한 개의 Master와 하나 이상의 Slave 서버로 구성
- 동작 : Master 서버에서 데이터를 작성하면 Slave 서버로 동기화
- 특징
- Slave는 읽기 작업(Read-Only)에만 사용 가능
- 쓰기 작업은 Master 서버에서만 가능
- 장점 : 간단하고 효율적
- 단점 : Master 장애 시 시스템 복구 필요
- Master-Master Replication
- 구조 : 두 개 이상의 Master 서버가 상호 복제
- 동작 : 각 Master가 데이터를 읽고 쓸 수 있으며 서로 동기화
- 특징
- 모든 서버가 읽기 및 쓰기 가능.
- 충돌 관리가 중요.
- 장점 : 고가용성 및 유연성
- 단점 : 충돌 관리 및 설정 복잡성
- Asynchronous Replication (비동기 복제)
- Master에서 데이터를 업데이트한 후 일정 시간이 지나 Slave에 복제
- 성능이 높지만 데이터 일관성이 즉시 보장되지 않음
- Synchronous Replication (동기 복제)
- Master에서 데이터를 업데이트하면 즉시 Slave에 복제
- 데이터 일관성이 높지만 성능이 낮을 수 있음
DB Replication 동작 방식
- Write 작업 : Master 서버에서 처리된 변경 사항이 복제본으로 전송
- Read 작업 : Slave 서버에서 주로 처리하여 읽기 부하를 분산
- Log 기반 복제 : 변경 로그(Transaction Log 또는 Binary Log)를 사용하여 데이터 복제
DB Replication의 주요 도구 및 기술
- MySQL : Master-Slave, Master-Master 복제를 지원
- PostgreSQL : 스트리밍 복제(Streaming Replication)와 논리적 복제(Logical Replication) 제공
- Oracle : Data Guard를 이용한 고급 복제 지원
- MongoDB : Replica Set을 사용한 복제 지원
- Microsoft SQL Server : AlwaysOn Availability Groups를 통해 복제
DB Replication 구현 시 고려사항
- 데이터 일관성 : 비동기 복제에서의 지연 문제 해결
- 충돌 관리 : Master-Master 환경에서 데이터 충돌 방지
- 네트워크 성능 : 복제 데이터 전송 시 네트워크 대역폭 고려
- 운영 비용 : 복제본 서버 유지 관리 비용 증가 가능
DB Replication은 시스템의 성능과 신뢰성을 높이기 위한 핵심 기술로 요구사항에 따라 적합한 유형과 설정을 선택하는 것이 중요하다.
반응형