적합한 복제 유형 선택

MicrosoftSQL Server에서는 3가지 유형의 복제를 제공합니다. 서로 다른 응용 프로그램 요구 사항에 적합한 복제 유형을 사용할 수 있습니다. 응용 프로그램의 요구 사항에 따라 토폴로지에서 하나 이상의 복제 유형을 사용할 수 있습니다.

  • 스냅숏 복제

  • 트랜잭션 복제

  • 병합 복제

이 항목에서는 적합한 복제 유형을 선택하는 데 도움이 되도록 다음 정보를 제공합니다.

  • 복제 시나리오

    이 섹션에서는 여러 가지 일반 복제 사용 예를 간단히 설명하고 자세한 설명이 포함된 링크를 제공합니다.

  • 복제 유형

    이 섹션에서는 적합한 각 복제 유형에 대한 응용 프로그램 요구 사항을 설명합니다.

  • 구독자에서 데이터 업데이트

    이 섹션에서는 구독자에서 데이터를 업데이트해야 하는 응용 프로그램에 대해 사용할 수 있는 옵션을 설명합니다.

먼저 시나리오 설명을 읽어 사용하는 응용 프로그램의 요구 사항에 가장 근접한 시나리오를 찾은 다음 링크를 클릭하여 자세한 정보를 보십시오. 비즈니스 요구 사항에 근접한 시나리오를 찾을 수 없거나 복제 유형에 대한 추가 정보를 얻으려면 "복제 유형"을 읽어 보십시오. 응용 프로그램이 하나 이상의 구독자에서 업데이트를 수행해야 하는 경우 "구독자에서 데이터 업데이트"를 읽어 사용하기에 적합한 기술을 결정하십시오.

복제 시나리오

복제 시나리오는 크게 서버 간 환경에서 데이터를 복제하는 방식과 서버와 클라이언트 간 데이터를 복제하는 방식으로 구분할 수 있습니다. 서버 간 시나리오는 트랜잭션 복제를 사용하여 구현되고(스냅숏 복제가 사용되기도 함) 서버와 클라이언트 간 시나리오는 병합 복제를 사용하여 구현됩니다.

서버 간 시나리오

일반적으로 다음과 같은 응용 방식 및 요구 사항을 지원하도록 서버 간에 데이터가 복제됩니다.

시나리오

설명

확장성 및 가용성 향상

연속으로 업데이트되는 데이터 복사본을 유지 관리하면 여러 서버로 읽기 작업을 확장할 수 있습니다. 동일한 데이터의 여러 복사본을 유지 관리할 때 얻을 수 있는 중복성은 계획적이거나 비계획적인 시스템 유지 관리에 매우 중요합니다. 자세한 내용은 확장성 및 가용성 향상을 참조하십시오.

데이터 웨어하우징 및 보고

데이터 웨어하우스 및 보고 서버는 주로 OLAP(온라인 트랜잭션 처리) 서버의 데이터를 사용합니다. 복제를 사용하여 OLTP 서버와 보고 및 의사 결정 지원 시스템 간에 데이터를 이동할 수 있습니다. 자세한 내용은 데이터 웨어하우징 및 보고를 참조하십시오.

여러 사이트의 데이터 통합

데이터는 주로 지사에서 "롤업"된 후 본사에서 통합됩니다. 마찬가지로 지사로 데이터가 복제될 수 있습니다. 자세한 내용은 여러 사이트(서버)의 데이터 통합을 참조하십시오.

다른 유형의 데이터 통합

일부 응용 프로그램은 MicrosoftSQL Server가 아닌 데이터베이스에서 데이터를 주고 받습니다. 복제를 사용하여 SQL Server 이외 데이터베이스의 데이터를 통합할 수 있습니다. 자세한 내용은 다른 유형의 데이터 통합을 참조하십시오.

일괄 처리 오프로드

일괄 처리 작업은 대개 너무 많은 리소스를 소비하므로 OLTP 서버에서 실행할 수 없습니다. 복제를 사용하여 일괄 처리 전용 서버로 처리를 오프로드할 수 있습니다. 자세한 내용은 일괄 처리 작업 오프로드를 참조하십시오.

서버와 클라이언트 간 시나리오

일반적으로 데이터는 워크스테이션, 랩톱, Tablet 및 장치와 같은 서버와 클라이언트 간에 복제되어 다음 응용 방식을 지원합니다.

시나리오

설명

모바일 사용자와 데이터 교환

많은 응용 프로그램에서는 영업 사원, 배달원 등을 비롯한 원격 사용자들이 데이터를 사용할 수 있어야 합니다. 이러한 응용 프로그램에는 CRM(Customer Relationship Management), SFA(Sales Force Automation) 및 FFA(Field Force Automation) 응용 프로그램이 포함됩니다. 자세한 내용은 모바일 사용자와 데이터 교환을 참조하십시오.

소비자 POS(Point of Sale) 응용 프로그램

계산기 및 ATM 기계 같은 POS 응용 프로그램을 사용할 경우 원격 사이트의 데이터가 중앙 사이트로 복제될 수 있어야 합니다. 자세한 내용은 소비자 POS(Point of Sale) 응용 프로그램을 참조하십시오.

여러 사이트의 데이터 통합

응용 프로그램에서 여러 사이트의 데이터를 통합하기도 합니다. 예를 들어 지사를 지원하는 응용 프로그램의 경우 지사와 본사 간에 단방향 또는 양방향으로 데이터가 이동될 수 있어야 합니다. 자세한 내용은 여러 사이트(클라이언트)의 데이터 통합을 참조하십시오.

복제 유형

스냅숏 복제

스냅숏 프로세스는 일반적으로 트랜잭션 및 병합 게시에 대한 초기 데이터 집합 및 데이터베이스 개체를 제공하는 데 사용되지만 스냅숏 복제 자체를 사용할 수도 있습니다. 다음 조건 중 하나 이상이 해당될 경우 스냅숏 복제를 단독으로 사용하는 것이 좋습니다.

  • 데이터가 자주 변경되지 않습니다.

  • 게시자 측에서 최신이 아닌 데이터 복사본을 일정 기간 동안 보유할 수 있습니다.

  • 소량의 데이터를 복제합니다.

  • 짧은 기간 동안 많은 양의 데이터가 변경됩니다.

스냅숏 복제는 많은 양의 데이터가 변경되지만 자주 변경되지는 않을 때 가장 적합합니다. 예를 들어 한 판매 조직이 제품 가격 목록을 유지 관리하면서 일년에 한 번이나 두 번 가격을 동시에 업데이트한다면 데이터 전체 스냅숏이 변경된 후 복제하는 것이 좋습니다.

트랜잭션 복제

트랜잭션 복제는 일반적으로 서버 간 환경에 사용되며 다음과 같은 경우에 적합합니다.

  • 증분 변경 내용을 발생과 동시에 구독자로 전파하려고 합니다.

  • 응용 프로그램이 게시자에서 변경이 수행된 시점과 해당 변경 내용이 구독자에 도달한 시점 간의 짧은 대기 시간이 필요합니다.

  • 응용 프로그램이 중간 데이터 상태에 액세스해야 합니다. 예를 들어 한 행이 5번 변경될 경우 트랜잭션 복제를 사용하면 응용 프로그램은 행의 실질적인 데이터 변경만이 아닌 모든 변경(예: 트리거 실행)에 응답할 수 있습니다.

  • 게시자가 많은 양의 삽입, 업데이트 및 삭제 작업을 수행합니다.

  • 게시자 또는 구독자가 Oracle과 같은 SQL Server 이외 데이터베이스입니다.

기본적으로 변경 내용이 게시자로 다시 전파되지 않기 때문에 트랜잭션 게시에 대한 구독자는 읽기 전용으로 취급되어야 합니다. 그러나 트랜잭션 복제는 구독자의 업데이트를 허용하는 다양한 옵션을 제공합니다. 자세한 내용은 이 항목의 "구독자에서 데이터 업데이트" 섹션을 참조하십시오.

병합 복제

병합 복제는 일반적으로 서버-클라이언트 간 환경에 사용됩니다. 병합 복제는 다음 상황에 적합합니다.

  • 여러 구독자가 다양한 시간에 동일한 데이터를 업데이트하고 그 변경 내용을 게시자 및 다른 구독자에 전파할 수 있습니다.

  • 구독자는 데이터를 받아 오프라인 상태에서 변경하여 나중에 게시자 및 다른 구독자와 변경 내용을 동기화해야 합니다.

  • 각 구독자에 서로 다른 데이터 파티션이 필요합니다.

  • 충돌이 발생할 수 있으며 충돌이 발생하면 충돌을 감지하여 해결할 수 있어야 합니다.

  • 응용 프로그램이 중간 데이터 상태가 아닌 순수한 데이터 변경 내용만 필요로 합니다. 예를 들어 구독자가 게시자와 동기화하기 전에 구독자에서 행이 5번 변경될 경우 게시자에서는 행이 한 번만 변경되어 최종 데이터 변경 내용(5번째 값)을 반영합니다.

병합 복제를 사용하면 여러 사이트에서 자율적으로 작업한 후 나중에 하나의 균일한 결과로 업데이트를 병합할 수 있습니다. 업데이트는 둘 이상의 노드에서 수행되므로 게시자 및 둘 이상의 구독자가 같은 데이터를 업데이트할 수 있습니다. 따라서 업데이트가 병합될 때 충돌이 발생할 수 있으며 병합 복제는 충돌을 처리하는 다양한 방법을 제공합니다.

구독자에서 데이터 업데이트

다음 복제 유형 및 복제 옵션을 사용하면 구독자에서 변경 내용을 적용하고 이 변경 내용을 게시자로 보낼 수 있습니다.

복제 유형

적용 가능한 상황

병합 복제

  • 구독자 수가 많습니다.

  • 데이터가 모바일 사용자에게 복제됩니다.

  • 복제된 데이터가 구독자에서 자주 업데이트됩니다.

  • 구독자가 여러 데이터 파티션을 받도록 데이터 필터링이 필요합니다.

자세한 내용은 병합 복제 개요병합 복제 작동 방법을 참조하십시오.

피어 투 피어 트랜잭션 복제

  • 확장성 및 가용성 향상을 위해 복제를 사용합니다.

  • 최소 대기 시간이 요구됩니다.

  • 데이터가 구독자 간에 분할되어 있지 않습니다.

  • 일반적으로 충돌이 발생하지 않지만 충돌이 있는지 검색해야 합니다.

자세한 내용은 피어 투 피어 트랜잭션 복제를 참조하십시오.

구독 업데이트가 있는 트랜잭션 복제

  • 구독자 수가 적습니다.

  • 복제된 대부분의 데이터가 구독자에서 읽기 전용입니다.

  • 구독자, 배포자 및 게시자가 즉시 업데이트 구독을 위해 거의 항상 연결되어 있습니다.

자세한 내용은 트랜잭션 복제를 위한 업데이트 가능 구독을 참조하십시오.