가용성 향상

복제를 사용하여 대기 서버에 데이터를 복제하면 계획적이거나 비계획적인 시스템 중단 시 가용성을 높일 수 있습니다. 대기 시 필요한 데이터가 주 서버에 필요한 데이터의 하위 집합인 경우 복제를 사용하여 웜 대기를 제공해야 합니다. 다음 사항도 고려해야 합니다.

  • 확장성 및 가용성 향상을 위해 응용 프로그램에서 여러 사이트에 데이터를 복제해야 하는 경우 가용성 및 확장성 향상을 참조하십시오.

  • 응용 프로그램이 대기 서버에서 데이터베이스 전체를 사용해야 할 경우 복제 대신 데이터베이스 미러링을 사용합니다. 전체 데이터베이스를 동기화해야 하는 경우 데이터베이스 미러링이 보다 효율적이며 쿼리에 보조 서버를 사용할 필요가 없습니다. 자세한 내용은 데이터베이스 미러링 관리를 참조하십시오.

다음 다이어그램에서는 주 서버와 단일 대기 서버를 보여 주며 보조 서버에서 사용할 수 있는 주 서버에 있는 데이터 하위 집합도 보여 줍니다.

대기 서버로 데이터 복제

[!참고]

복제는 한 서버에서 다른 대기 서버로 장애 조치(Failover)를 수행하는 메커니즘을 제공하지 않습니다. 지정된 서버에 액세스하는 응용 프로그램은 첫 번째 서버를 사용할 수 없는 경우 다른 서버를 사용할 수 있도록 프로그래밍되어야 합니다.

Adventure Works Cycles 예

Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다. 자세한 내용은 AdventureWorks 예제 데이터베이스를 참조하십시오.

Adventure Works Cycles에서는 생산 라인에 결함이 발생할 경우 이에 대한 데이터를 수집하도록 전체 제조 설비에 여러 대의 서버를 두었으며 복제를 사용하여 이러한 서버에 가용성을 제공합니다. 또한 계획적이거나 비계획적인 시스템 중단 시 쿼리가 웜 대기 서버로 리디렉션되도록 코드를 작성했습니다.

이 시나리오의 일반적인 요구 사항

일반적으로 가용성을 위해 복제를 사용하는 응용 프로그램에는 다음과 같은 요구 사항을 충족하는 적합한 복제 솔루션이 제공되어야 합니다.

  • 시스템에서는 트랜잭션 일관성을 유지해야 합니다.

  • 시스템의 대기 시간이 짧아야 합니다. 즉, 한 서버에서 수행된 업데이트 내용이 다른 서버로 빠르게 전달되어야 합니다.

  • 시스템의 처리량이 많아야 합니다. 즉, 많은 수의 트랜잭션에 대한 복제를 처리해야 합니다.

  • 복제 처리 시 오버헤드가 최소로 발생해야 합니다.

  • 보조 서버에서 필요한 데이터가 주 서버에서 사용 가능한 데이터의 하위 집합일 수 있습니다. 위의 첫 번째 다이어그램을 참조하십시오.

이 시나리오에 사용할 복제 유형

MicrosoftSQL Server에서는 복제 시스템의 구성 요소를 기술하는 데 게시 관련 산업의 메타포를 사용합니다. 구성 요소에는 게시자, 구독자, 게시 및 아티클과 구독이 포함됩니다.

위의 다이어그램에서 주 서버는 게시자입니다. 주 서버의 일부 또는 전체 데이터는 게시에 포함되며 데이터의 각 테이블은 아티클입니다. 아티클은 저장 프로시저와 같은 다른 데이터베이스 개체일 수도 있습니다. 대기 서버는 게시의 구독자이며 스키마와 데이터를 구독으로 받습니다. 시스템 구성 요소에 대한 자세한 내용은 복제 게시 모델 개요를 참조하십시오.

SQL Server는 다양한 응용 프로그램 요구 사항을 위해 스냅숏 복제, 트랜잭션 복제 및 병합 복제와 같은 여러 복제 유형을 제공합니다. 이 시나리오는 이전 섹션에서 설명한 요구 사항을 해결하기에 가장 적합한 트랜잭션 복제를 통해 최적으로 구현됩니다. 트랜잭션 복제에 대한 자세한 내용은 트랜잭션 복제 개요트랜잭션 복제 작동 방법을 참조하십시오.

기본적으로 트랜잭션 복제는 다음과 같은 이 시나리오의 주요 요구 사항을 처리합니다.

  • 트랜잭션 일관성

  • 짧은 대기 시간

  • 높은 처리량

  • 최소 오버헤드

이 시나리오에서 고려해야 할 기본 옵션은 필터링입니다. 트랜잭션 복제를 사용하면 구독자의 테이블에 응용 프로그램에 필요한 데이터만 포함되도록 열 및 행을 필터링할 수 있습니다. 자세한 내용은 게시된 데이터 필터링을 참조하십시오.

이 시나리오 구현을 위한 단계

이 시나리오를 구현하려면 우선 게시와 구독을 생성한 다음 각 구독을 초기화해야 합니다. 각 단계에 대한 자세한 내용을 보려면 아래 링크를 클릭하십시오.

구독이 초기화되고 게시자와 구독자 간 데이터 흐름이 시작된 후 일반적인 관리 및 모니터링 태스크에 대한 정보를 보려면 다음 항목을 참조하십시오.

참고 항목

관련 자료