Database

DB Replication

TedDev 2024. 12. 9. 17:12
728x90

DB Replication(데이터베이스 복제)은 데이터를 한 데이터베이스 서버에서 다른 서버로 복제하여 여러 복사본을 유지하는 기술이다. 이 과정은 데이터의 가용성과 성능을 높이고 장애 복구 및 확장성을 제공하기 위해 사용된다.

 

DB Replication의 주요 목적

  1. 고가용성(High Availability) : 한 서버가 다운되더라도 다른 복제본 서버에서 데이터를 제공할 수 있도록 보장
  2. 부하 분산(Load Balancing) : 읽기 작업을 여러 서버에 분산시켜 성능 향상
  3. 장애 복구(Fault Tolerance) : 원본 데이터베이스가 손상되더라도 복제본으로 복구 가능
  4. 데이터 배포(Data Distribution) : 여러 지역이나 지점에 데이터 동기화 가능

 

DB Replication의 유형

  1. Master-Slave Replication
    • 구조 : 한 개의 Master와 하나 이상의 Slave 서버로 구성
    • 동작 : Master 서버에서 데이터를 작성하면 Slave 서버로 동기화
    • 특징
      • Slave는 읽기 작업(Read-Only)에만 사용 가능
      • 쓰기 작업은 Master 서버에서만 가능
    • 장점 : 간단하고 효율적
    • 단점 : Master 장애 시 시스템 복구 필요
  2. Master-Master Replication
    • 구조 : 두 개 이상의 Master 서버가 상호 복제
    • 동작 : 각 Master가 데이터를 읽고 쓸 수 있으며 서로 동기화
    • 특징
      • 모든 서버가 읽기 및 쓰기 가능.
      • 충돌 관리가 중요.
    • 장점 : 고가용성 및 유연성
    • 단점 : 충돌 관리 및 설정 복잡성
  3. Asynchronous Replication (비동기 복제)
    • Master에서 데이터를 업데이트한 후 일정 시간이 지나 Slave에 복제
    • 성능이 높지만 데이터 일관성이 즉시 보장되지 않음
  4. 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 구현 시 고려사항

  1. 데이터 일관성 : 비동기 복제에서의 지연 문제 해결
  2. 충돌 관리 : Master-Master 환경에서 데이터 충돌 방지
  3. 네트워크 성능 : 복제 데이터 전송 시 네트워크 대역폭 고려
  4. 운영 비용 : 복제본 서버 유지 관리 비용 증가 가능

 

DB Replication은 시스템의 성능과 신뢰성을 높이기 위한 핵심 기술로 요구사항에 따라 적합한 유형과 설정을 선택하는 것이 중요하다.

반응형