데이터 동기화의 주요 방식들

2024. 10. 31. 17:16매일의 성장 기록/IT 지식

데이터 동기화의 주요 방식

  1. 동기적 데이터 동기화 (Synchronous Replication)
    • 개념: 동기적 동기화는 데이터가 주 데이터베이스에 기록되는 즉시 대기 데이터베이스에도 동일하게 기록되는 방식입니다. 모든 트랜잭션이 주 데이터베이스와 대기 데이터베이스에 동시에 반영되기 때문에 데이터 일관성을 보장합니다.
    • 특징:
      • 높은 일관성: 모든 데이터 변경 사항이 즉시 복제되어 데이터 일관성이 보장됩니다.
      • 실시간 반영: 데이터가 변경됨과 동시에 복제본에 반영되므로, 데이터 상태가 실시간으로 동기화됩니다.
      • 성능 부하: 동기적 특성 때문에 데이터 변경 시 각 데이터베이스에 모두 적용될 때까지 대기해야 하므로 성능 부하가 발생할 수 있습니다.
    • 구성 방식:
      • 마스터 데이터베이스에서 데이터 변경(삽입, 수정, 삭제 등)이 발생하면 슬레이브 데이터베이스(DR망 DB)에서도 동시에 반영됩니다.
      • 마스터와 슬레이브 데이터베이스 간의 네트워크 연결이 안정적으로 유지되어야 하며, 데이터 일관성을 유지하기 위해 트랜잭션이 완료될 때까지 양쪽 데이터베이스가 동기화 과정을 마쳐야 합니다.
    • 동작 방식:
      • 트랜잭션 수행: 주 데이터베이스에서 트랜잭션이 수행되면, 해당 변경 사항이 동기적으로 대기 데이터베이스에 반영됩니다.
      • 일관성 확인: 변경이 대기 데이터베이스에 반영될 때까지 주 데이터베이스는 다음 작업을 대기하며, 이를 통해 데이터의 일관성을 유지합니다.
    • 장점: 데이터 일관성 보장
    • 단점: 지연 시간이 발생할 수 있음. 모든 트랜잭션이 두 DB에 모두 기록될 때까지 기다려야 하기 때문에 성능에 부하가 올 수 있음
    • 사용 예시: 금융 서비스, 실시간 거래 시스템, 의료 기록 관리 시스템 등 데이터 일관성이 매우 중요한 경우에 사용됩니다.
  2. 비동기적 데이터 동기화 (Asynchronous Replication)
    • 개념: 비동기적 동기화는 데이터가 마스터 DB에 기록된 후 일정 시간이 지난 후에 슬레이브 DB에 기록되는 방식입니다. 비동기적 복제에서는 DB 변경 사항을 복제본에 반영하는 과정을 기다리지 않고 즉시 다음 작업을 수행하기 때문에 쓰기 작업의 지연이 거의 없습니다. 주로 읽기 성능을 최적화하기 위해 사용되며, 데이터 일관성보다는 쓰기 성능이 중요할 때 적합합니다.
    • 특징:
      • 높은 쓰기 성능: 변경 사항을 복제하는 과정에서 대기하지 않기 때문에 쓰기 작업의 성능이 높습니다.
      • 일관성 저하 가능성: 주 데이터베이스와 대기 데이터베이스 간에 일시적인 데이터 불일치가 발생할 수 있습니다.
      • 낮은 지연: 데이터를 실시간으로 복제하지 않기 때문에 빠른 데이터 쓰기 작업이 가능합니다.
    • 구성 방식:
      • 프라이머리 데이터베이스에서 데이터 변경이 발생하면 해당 변경 사항이 로그에 기록된 후 일정 주기마다 세컨더리 데이터베이스로 전송되어 동기화됩니다.
      • 데이터 복제는 비동기적으로 수행되며, 두 데이터베이스 간의 네트워크 상태나 성능에 따라 지연이 발생할 수 있습니다.
    • 동작 방식:
      • 트랜잭션 수행 및 로그 생성: 주 데이터베이스에서 데이터 변경 트랜잭션이 발생하고 트랜잭션 로그에 기록됩니다.
      • 비동기적 전파: 데이터 변경이 완료된 후 주 데이터베이스는 변경 사항을 비동기적으로 복제본에 전파합니다. 복제본은 전송받은 로그를 통해 변경 사항을 **재생(replay)**하여 데이터베이스 상태를 업데이트합니다.
      • 주 데이터베이스는 복제본에 변경 사항이 적용되었는지 여부에 상관없이 즉시 다음 트랜잭션을 처리합니다. 복제본은 주 데이터베이스와 시간차가 발생할 수 있으므로, 일시적인 데이터 불일치 상태가 존재할 수 있습니다.
    • 장점: 성능에 대한 부담이 적음
    • 단점: Primary DB와 Secondary DB 간에 일시적인 데이터 불일치가 발생할 수 있음
    • 사용 예시: 소셜 미디어 업데이트, 로그 데이터 수집, 비즈니스 인텔리전스 시스템 등 쓰기 성능이 중요한 경우에 사용됩니다.
  3. 스트리밍 복제 (Streaming Replication)
    • 개념: 스트리밍 복제는 Primary DB에서 트랜잭션 로그를 실시간으로 Secondary DB로 전송하여 데이터를 동기화하는 방식입니다. 실시간 동기화가 비동기적으로 이루어지지만, 준 실시간 동기화가 가능하다는 점에서 비동기적 복제와 차별화됩니다.
    • 특징:
      • 실시간 데이터 반영: 데이터 변경 사항이 트랜잭션 로그를 통해 실시간으로 반영됩니다.
      • 일관성 향상: 비동기적 복제보다 데이터 일관성이 높은 편이며, 거의 실시간에 가까운 동기화가 가능합니다.
      • 네트워크 의존성: 실시간 데이터 전송을 위해 네트워크 상태에 큰 영향을 받을 수 있습니다.
    • 구성 방식:
      • 마스터 데이터베이스에서 트랜잭션이 발생하면 해당 로그를 스트리밍 방식으로 슬레이브 데이터베이스에 전송하여 데이터를 실시간으로 반영합니다.
      • 스트리밍 복제를 위해 마스터와 슬레이브 데이터베이스 간 안정적인 네트워크 연결이 요구됩니다.
    • 동작 방식:
      • 트랜잭션 로그 생성 및 스트리밍 준비: 주 데이터베이스에서 트랜잭션이 수행되면, 해당 변경 사항은 트랜잭션 로그에 기록되고, 이를 복제본에 실시간 스트리밍하기 위한 준비가 됩니다.
      • 실시간 스트리밍 전송: 트랜잭션 로그가 생성되는 대로 스트리밍 방식으로 복제본에 전송되고, 복제본은 수신된 로그를 즉시 적용하여 데이터베이스를 동기화합니다.
      • 복제본은 스트리밍된 로그를 통해 데이터를 즉시 업데이트하며, 주 데이터베이스와의 일관성을 최대한 유지하려고 합니다. 다만 네트워크 문제로 인해 약간의 시간 차이가 발생할 수 있습니다.
    • 장점: 실시간에 가깝게 동기화가 이루어지며, 데이터 일관성과 성능 간의 균형을 유지할 수 있음
    • 단점: 비동기적 동기화보다는 성능 부하가 있을 수 있음. 그러나 동기적 동기화보다는 성능에 더 나은 영향을 미침
    • 사용 예시: 온라인 게임 상태 동기화, 실시간 분석 시스템, 비디오 스트리밍 서비스 등 실시간 데이터 접근이 중요한 경우에 사용됩니다.
  4. 로그 전달 (Log Shipping)
    • 개념: 로그 전달 방식은 Primary DB에서 생성된 트랜잭션 로그를 일정 주기로 Secondary DB에 전달하여 데이터 동기화를 이루는 방식입니다. 비동기적이며, 주기적으로 데이터 동기화를 수행합니다.
    • 특징:
      • 주기적 데이터 반영: 트랜잭션 로그를 일정 주기로 전달하여 동기화를 수행합니다.
      • 간편한 설정: 설정과 관리가 비교적 간단하며, 데이터 복구를 위한 효과적인 방법으로 사용됩니다.
      • 일관성 지연: 데이터 변경 시점과 로그 전달 시점 사이에 일정한 지연이 발생하여 일관성이 떨어질 수 있습니다.
    • 구성 방식:
      • Primary 데이터베이스에서 발생한 변경 사항이 로그 파일로 저장되고 이를 일정 주기로 Secondary 데이터베이스에 전달하여 적용합니다.
      • 로그 파일은 주기적으로 압축 및 전송되어 대역폭 사용을 최적화하고, 복제본은 해당 로그를 재생하여 데이터를 업데이트합니다.
    • 동작 방식:
      • 트랜잭션 로그 파일 생성: 주 데이터베이스에서 데이터 변경 트랜잭션이 발생하면, 이 변경 사항은 트랜잭션 로그 파일로 저장됩니다.
      • 로그 파일 전송: 일정 주기(예: 10분, 30분 등)마다 주 데이터베이스에서 로그 파일을 복제본으로 전송하고, 복제본에 저장됩니다. 일반적으로 로그 파일은 복제본에 전송되기 전에 압축되어 대역폭 사용을 최적화합니다.
      • 로그 파일 재생 및 동기화: 복제본은 주기적으로 전송받은 로그 파일을 통해 데이터를 업데이트하며, 이 과정을 **로그 재생(replay)**이라고 합니다. 데이터 변경 시점부터 로그 파일이 복제본에 전송되고 재생될 때까지 일정한 시간 차이가 발생할 수 있으며, 그 동안 데이터 불일치가 발생할 수 있습니다.
    • 장점: 설정이 간단하고 비용 효율적임
    • 단점: 실시간 동기화가 불가능하여 데이터 불일치가 길게 지속될 수 있음
    • 사용 예시: 데이터 백업 및 복구 시스템, 데이터 아카이빙, 재해 복구 솔루션 등 실시간 동기화가 필요하지 않은 경우에 사용됩니다.