데이터 복제란 무엇입니까?
데이터 복제는 동일한 데이터가 의도적으로 둘 이상의 사이트 또는 서버에 저장되는 경우입니다. 기업이 데이터를 복제하는 데에는 몇 가지 이유가 있습니다. 데이터 복제를 사용하면 서버 가동 중지 시간이나 또는 서버 트래픽이 많은 경우 데이터를 원활하게 사용할 수 있습니다. 다른 사용자의 접속을 방해하거나 속도를 늦추지 않으면서 사용자가 데이터에 지속적으로 액세스할 수 있습니다. 클라우드 애플리케이션의 경우 데이터 복제를 사용하면 클라우드 애플리케이션의 API를 통해 데이터에 액세스하는 것보다 훨씬 더 높은 성능으로 로컬 데이터베이스의 데이터 복사본에 액세스할 수 있습니다. 이는 특히 분석 및 데이터 사이언스에 유용합니다. 데이터 복제를 통해 일부 클라우드 애플리케이션에 있는 API 트랜잭션 제한 및 트래픽 조절을 피할 수도 있습니다.
데이터 복제는 일반 백업과 동일한 것이 아니며 더 많은 작업을 수행할 수 있습니다. 데이터가 생성되는 서버를 퍼블리셔라고 하고 데이터가 복제되는 서버를 서브스크리버라고 합니다. 데이터 복제의 경우 퍼블리셔에서 수행된 트랜잭션은 서브스크리버와 동기화되고 데이터가 자동으로 업데이트됩니다. 퍼블리셔의 데이터에 대한 모든 변경 사항은 서브스크리버에게도 자동으로 반영됩니다.
데이터 복제에는 전체 복제 또는 부분 복제가 있을 수 있습니다. 전체 복제의 경우, 모든 소스 데이터가 모든 복제 사이트에 저장됩니다. 부분 복제의 경우, 자주 액세스하는 데이터만 복사하고 다른 데이터는 원본 서버에 남습니다.
데이터 복제 유형
데이터 복제에는 세 가지 주요 유형이 있습니다.
트랜잭션 복제
트랜잭션 복제에서 자주 발생하는 데이터 변경 사항은 자동화되어 서버 간에 배포됩니다. 퍼블리셔에서 서브스크리버로의 변경 사항 복제는 거의 실시간으로 진행됩니다. 단순히 트랜잭션의 최종 결과를 복제하는 것이 아니라 트랜잭션의 모든 단계와 변경이 발생한 순서를 기록합니다.
예를 들어, ATM 거래의 경우 퍼블리셔에서 서브스크리버로 복제되는 것은 기록된 최종 잔액뿐만 아니라 그 사이에 이루어진 모든 개별 거래입니다. 트랜잭션 복제의 또 다른 주요 기능은 퍼블리셔의 데이터 변경 내용이 서브스크리버에게 복제되는 동안에는 다른 방식으로 작동하지 않는다는 것입니다. 서브스크리버에서는 기본적으로 데이터 변경이 발생하지 않습니다.
스냅샷 복제
스냅샷 복제는 지정된 시점에 퍼블리셔와 서브스크리버 간에 데이터를 동기화합니다. 단일 트랜잭션으로 퍼블리셔에서 서브스크리버로 데이터 청크를 이동합니다. 스냅샷 복제의 업데이트는 트랜잭션 복제만큼 자주 발생하지 않습니다. 스냅샷 복제는 두 서버의 기본 상태를 설정하기 위해 트랜잭션 복제 전에 수행할 수 있습니다. 이 복제에서는 서버 간의 모든 트랜잭션이나 데이터 변경 순서를 갱신하지 않습니다.
이 프로세스는 일정 기간 동안 변경되는 데이터를 동기화하는 데 사용됩니다. 예를 들어, 많은 회사에서 보고 목적으로 계정, 연락처 및 기회와 같은 데이터를 클라우드 CRM에서 로컬 데이터베이스로 복제합니다. 이는 데이터 변경 빈도에 따라 15분마다, 한 시간에 한 번 또는 하루에 한 번 수행될 수 있습니다. 효율성을 위해 복제 프로세스는 퍼블리셔에서 변경된 데이터를 감지하고 모든 복제 간격마다 전체 스냅샷을 생성하지 않고 변경 사항만 복제할 수 있습니다.
병합 복제
병합 복제는 약간 더 복잡한 복제 형태를 가집니다. 퍼블리셔의 초기 동기화는 스냅샷 복제입니다. 그러나 이 형태에서는 퍼블리셔와 서브스크리버 수준 모두에서 데이터 변경이 발생할 수 있습니다. 업데이트된 데이터는 모든 서버에 설치된 병합 에이전트로 전송됩니다. 병합 에이전트는 충돌 해결 알고리즘을 사용하여 데이터를 업데이트하고 배포합니다.
예를 들어, 직원이 온라인 상태에서 노트북이나 휴대폰(서브스크리버)의 클라우드 서버(퍼블리셔)에 직접 저장된 문서를 편집하는 경우 문서가 거의 실시간으로 저장되기 때문에 트랜잭션 복제가 됩니다. 그러나 클라우드 서버에서 문서를 다운로드하고 노트북이나 휴대폰에서 오프라인으로 업데이트하면 서브스크리버 측에서 데이터가 업데이트되기 때문에 충돌이 발생합니다. 다시 온라인 상태가 되면 충돌 해결 시스템을 사용하여 두 파일을 비교하여 퍼블리셔의 문서를 업데이트하는 병합 에이전트를 거칩니다.
병합 복제는 데이터가 업데이트되는 동안 오프라인이 될 수 있는 모바일 사용자의 경우와 같이 사용자가 퍼블리셔에 항상 직접 액세스할 수 없는 여러 시나리오에서 사용됩니다. 또한 여러 퍼블리셔가 동일한 데이터에 액세스하여 다양한 시간에 업데이트하고 퍼블리셔 또는 다른 퍼블리셔와 동기화할 수 있는 경우에도 사용됩니다. 퍼블리셔의 동일한 데이터가 동시에 여러 서브스크리버에 의해 부분적으로 업데이트되는 경우에도 사용할 수 있습니다.
데이터 복제 네트워크의 중요 구성 요소
퍼블리셔와 서브스크리버 외에도 네트워크에는 성공에 필요한 몇 가지 핵심 요소가 있습니다.
디스트리뷰터
복제 설정을 변경하려면 먼저 디스트리뷰터를 구성해야 합니다. 디스트리뷰터는 배포 데이터베이스를 제어하고 모든 복제의 메타데이터와 기록을 저장하는 복제 네트워크의 서버입니다. 또한 복제를 위한 트랜잭션과 스냅샷을 저장합니다. 디스트리뷰터는 복제 유형에 따라 퍼블리셔 서버(로컬 디스트리뷰터) 또는 원격 디스트리뷰터와 동일할 수 있습니다.
원격 디스트리뷰터는 일반적으로 단일 디스트리뷰터가 여러 퍼블리셔에게 서비스를 제공하거나 퍼블리셔의 데이터 이동에 영향을 미치지 않도록 별도의 컴퓨터에서 처리해야 할 때 사용됩니다. 이것은 일반적으로 업데이트 빈도가 훨씬 더 높고 동일한 서버에 있는 경우 디스트리뷰터의 처리 속도에 영향을 줄 수 있는 트랜잭션 복제에 사용됩니다. 복제 및 업데이트 빈도가 트랜잭션 복제만큼 빈번하지 않기 때문에 병합 복제는 로컬 디스트리뷰터를 통해 수행할 수 있습니다. 또한 병합 후 서브스크리버의 업데이트된 데이터가 결국 퍼블리셔와 동기화되어야 하는 데 도움이 됩니다.
복제 에이전트
복제 에이전트는 복제의 핵심이며 설치된 복제 유형에 따라 다릅니다. 복제 에이전트는 퍼블리셔 및 서브스크리버 데이터베이스 검색 및 업데이트, 복사본 만들기 및 충돌 해결과 같은 다양한 작업을 수행하는 프로그램입니다. 복제 에이전트는 일반적으로 디스트리뷰터에 저장됩니다. 디스트리뷰터에서 실행되는 일부 복제 에이전트는 다음과 같습니다.
- 스냅샷 에이전트
- 배포 에이전트
- 병합 에이전트
- 로그 리더 에이전트
- 큐 리더 에이전트
데이터 복제의 장점
데이터 복제는 데이터에 대한 일관된 액세스를 제공하는 좋은 방법입니다. 또한 동시에 여러 사용자가 데이터에 액세스할 수 있도록 합니다. 데이터베이스를 병합하고 불완전한 데이터로 슬레이브 데이터베이스를 업데이트하면 데이터 중복이 제거됩니다. 그리고 데이터 복제를 사용하면 자연스럽게 데이터베이스에 더 빠르게 액세스할 수 있습니다.
데이터 복제의 단점
데이터 복제는 이를 유지하기 위한 큰 저장 공간과 인프라가 필요합니다. 복제는 비용이 많이 들고 데이터 일관성을 유지하기 위한 목적으로 인프라를 유지 관리하려면 복잡한 조치가 필요합니다. 또한 소프트웨어의 더 많은 부분이 개인 정보 및 보안 침해에 노출됩니다.
복제 모범 사례
복제 네트워크가 설정되면 다음과 같은 몇 가지 효과적인 관리 방법을 따르는 것이 중요합니다.
- 정기적으로 데이터베이스를 백업하는 전략이 있어야 합니다. 또한 이러한 백업을 복원하기 위해 정기적인 테스트를 실행해야 합니다.
- 재해 복구의 일부에 대해서는 스크립트를 쉽게 저장하고 백업할 수 있으므로 모든 복제 구성 요소와 반복 작업을 스크립팅하는 것이 필수적입니다. 정책이 변경되는 경우 구성 요소를 쉽게 다시 스크립팅할 수 있습니다.
- 복제 성능에 영향을 미치는 요인을 설정하는 것이 필요합니다. 여기에는 하드웨어, 데이터베이스 설계, 네트워크 설정, 서버 설정 및 에이전트 매개변수와 같은 측면이 포함됩니다. 이 모든 것을 제자리에 배치하고 애플리케이션에서 사용하는 워크로드를 모니터링해야 합니다.
효율성을 제공하려면 다음 5가지 매개변수를 모니터링해야 합니다.
- 복제에 필요한 시간
- 일정 기간 동안 지속되는 복제
- 동시에 발생할 수 있는 동시성 또는 복제 활동의 수
- 동기화 기간
- 복제를 위한 리소스 소비
- 재해를 방지하려면 성능 임계값을 설정하여 도달 시 경고를 생성하고 관리자에게 경고를 보낼 수 있도록 하는 것이 중요합니다. 복제 에이전트 또는 복제 프로세스의 작업에 대해 경고를 설정할 수도 있습니다.
- 복제 토폴로지 모니터링
- 성공적인 복제를 유지하려면 퍼블리셔와 서브스크리버에서 트랜잭션 복제 및 병합 복제에 대한 데이터의 주기적 유효성 검사를 수행해야 합니다.
데이터 복제는 데이터 백업을 만드는 것 이상입니다. 데이터 복제는 데이터 관리의 핵심 구성 요소 중 하나이지만 제대로 관리하지 않으면 비용이 많이 들고 복잡한 프로세스가 될 수도 있습니다. 핵심은 필요에 맞는 올바른 복제 프로세스를 선택하는 데 있습니다.