다음을 통해 공유


확장성 향상

중간 계층 응용 프로그램에서는 종종 단일 데이터베이스를 사용하여 데이터를 저장하지만 이렇게 하면 데이터베이스에 대한 로드가 증가할 경우 확장성이 제한될 수 있습니다. 응용 프로그램이 웹 기반 카탈로그에서와 같이 쓰기 작업보다 읽기 작업을 더 많이 수행하는 경우 읽기 전용 데이터를 여러 데이터베이스에서 캐시한 다음 전체 데이터베이스에 클라이언트를 균등하게 연결시켜 로드를 분산하면 작업의 읽기 부분만 수평으로 확장(Scale-out)할 수 있습니다.

다음 다이어그램에서는 응용 프로그램과 웹 서버가 3개의 캐싱 서버에 있는 임의 데이터를 사용하는 구성을 보여 줍니다.

복제를 사용하여 읽기 작업 확장

응용 프로그램을 통해 가용성을 향상시키거나 지정된 사용자에 대한 읽기 및 업데이트 내용을 특정 응용 프로그램 서버로 이동한 다음 특정 캐싱 서버로 이동해야 하는 경우 가용성 및 확장성 향상의 예를 참조하십시오.

Adventure Works Cycles 예

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

Adventure Works Cycles에서는 최근 웹 사이트를 업그레이드하여 다음과 같은 새 기능을 포함시켰습니다.

  • 고객을 위한 온라인 제품 주문

  • 온라인 주문 상태 확인

  • 제품 안내서에 대한 향상된 검색 기능

웹 사이트에서 제품 온라인 주문 서비스를 시작하면서 Microsoft SQL Server 전용으로 사용되는 회사 단일 컴퓨터의 활동이 상당히 증가되었습니다. Adventure Works 관리자는 이 컴퓨터를 복제된 데이터의 원본으로 사용하기로 결정했습니다. 모든 읽기 작업이 원본 컴퓨터의 데이터를 캐시하는 3대의 추가 컴퓨터(SQL Server 실행)로 수평으로 확장(Scale-out)되었고 이제 캐싱 컴퓨터는 사용자의 제품 카탈로그 검색 및 주문 상태 확인 작업을 비롯한 모든 읽기 작업을 처리합니다. 모든 쓰기 작업은 원본 데이터베이스로 전송됩니다.

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

확장성을 위해 복제를 사용하는 응용 프로그램에는 일반적으로 올바른 복제 솔루션이 해결해야 하는 다음과 같은 요구 사항이 있습니다.

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

  • 시스템의 대기 시간이 짧아야 합니다. 즉, 원본에서의 업데이트 내용이 캐시에 빠르게 도달해야 합니다.

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

  • 복제 처리를 위해서는 원본의 오버헤드가 최소로 유지되어야 합니다.

  • 캐시에 필요한 데이터는 원본에서 사용할 수 있는 데이터의 하위 집합일 수 있습니다.

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

SQL Server에서는 복제 시스템의 구성 요소를 기술하는 데 게시 관련 산업의 메타포를 사용합니다. 구성 요소에는 게시자, 구독자, 게시 및 아티클과 구독이 포함됩니다. 시스템 구성 요소에 대한 자세한 내용은 복제 게시 모델 개요를 참조하십시오.

위의 다이어그램에서 원본은 게시자입니다. 원본에 있는 데이터 일부나 전체는 게시에 포함되며 데이터의 각 테이블은 아티클입니다. 아티클은 저장 프로시저와 같은 다른 데이터베이스 개체일 수도 있습니다. 각 캐시는 게시에 대한 구독자이며 스키마와 데이터를 구독으로 받습니다.

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

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

  • 트랜잭션 일관성

  • 짧은 대기 시간

  • 높은 처리량

  • 최소 오버헤드

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

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

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

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

참고 항목

관련 자료