일괄 처리 작업 오프로드
일부 응용 프로그램에서는 데이터에 처리 집중형 일괄 처리 작업을 수행해야 합니다. 대부분의 경우 이러한 일괄 처리 작업은 처리 오버헤드가 서버의 다른 작업을 방해하므로 OLTP(온라인 트랜잭션 처리) 서버에서 수행할 수 없습니다. 이런 경우 별도 서버에서 일괄 처리 작업을 수행해야 합니다. 경우에 따라 일괄 처리 작업이 간단히 오프로드되거나 일괄 처리 결과가 다시 온라인 처리 서버로 전파됩니다.
다음 다이어그램에서는 일괄 처리 서버로 데이터가 복제된 일반적인 시나리오를 보여 줍니다.
Adventure Works Cycles 예
Adventure Works Cycles는 데이터베이스 개념 및 시나리오를 설명하는 데 사용되는 가상 제조 회사입니다. 자세한 내용은 AdventureWorks 예제 데이터베이스를 참조하십시오.
Adventure Works Cycles에서는 일괄 처리를 사용하여 웹 사이트에서의 신용 카드 사기를 검사합니다. 웹 사이트 트랜잭션에서 수집한 데이터는 해당 웹 사이트를 서비스하는 MicrosoftSQL Server에서 여러 Adventure Works Cycles 응용 프로그램에 사용되는 별도의 SQL Server로 복제됩니다. 일괄 처리 서버에서는 데이터에 신용 카드 사기 패턴이 포함되어 있는지 검사합니다. 사기 감지 결과 적은 양의 데이터가 생성되더라도(특정 계정이 의심스러운 작업 패턴을 보이는 경우 소수 열에 있는 데이터를 업데이트함) 이 검사에서는 계산을 많이 수행하며 상당히 많은 서버 리소스가 필요합니다. 일괄 처리 작업이 실행된 다음에는 웹 사이트에 대해 적은 양의 데이터가 다시 OLTP 서버로 보내지며 사기 가능성이 있는 계정이 표시됩니다.
이 시나리오의 일반적인 요구 사항
일괄 처리 응용 프로그램에는 일반적으로 올바른 복제 솔루션이 해결해야 하는 다음과 같은 요구 사항이 있습니다.
시스템에서는 트랜잭션 일관성을 유지해야 합니다.
시스템의 대기 시간이 짧아야 합니다. 즉, 온라인 처리 서버의 업데이트가 일괄 처리 서버에 빠르게 도달해야 합니다.
시스템의 처리량이 높아야 합니다. 즉, 많은 수의 트랜잭션에 대한 복제를 처리해야 합니다.
복제 처리를 위해서는 온라인 처리 서버의 오버헤드가 최소로 유지되어야 합니다.
데이터 변경 내용은 양방향으로 전달될 수 있습니다. 즉, 일괄 처리 작업 결과를 온라인 처리 서버로 다시 전파할 수 있습니다.
일괄 처리 서버에 필요한 데이터는 온라인 처리 서버에서 사용할 수 있는 데이터의 하위 집합일 수 있습니다.
이 시나리오에 사용할 복제 유형
SQL Server에서는 복제 시스템의 구성 요소를 기술하는 데 게시 관련 산업의 메타포를 사용합니다. 구성 요소에는 게시자, 구독자, 게시 및 아티클과 구독이 포함됩니다.
위의 다이어그램에서 온라인 처리 서버는 게시자입니다. 온라인 처리 서버에 있는 데이터 일부나 전체는 게시에 포함되며 데이터의 각 테이블은 아티클입니다. 아티클은 저장 프로시저와 같은 다른 데이터베이스 개체일 수 있습니다. 일괄 처리 서버는 게시에 대한 구독자이며 스키마와 데이터를 구독으로 수신합니다.
결과를 온라인 처리 서버에 다시 전파하면 일괄 처리 서버가 게시자가 되고(일반적으로 게시가 온라인 처리 서버에 있는 게시와 동일함) 온라인 처리 서버에서 이 게시를 구독합니다.
시스템 구성 요소에 대한 자세한 내용은 복제 게시 모델 개요를 참조하십시오.
SQL Server에서는 다양한 응용 프로그램 요구 사항을 위해 스냅숏 복제, 트랜잭션 복제 및 병합 복제와 같은 여러 복제 유형을 제공합니다. 이 시나리오는 이전 섹션에서 설명한 요구 사항을 해결하기에 가장 적합한 트랜잭션 복제를 통해 최적으로 구현됩니다. 트랜잭션 복제에 대한 자세한 내용은 트랜잭션 복제 개요 및 트랜잭션 복제 작동 방법을 참조하십시오.
기본적으로 트랜잭션 복제는 다음과 같은 이 시나리오의 주요 요구 사항을 처리합니다.
트랜잭션 일관성
짧은 대기 시간
높은 처리량
최소 오버헤드
이 시나리오에 대해 고려할 옵션은 필터링, 피어 투 피어 트랜잭션 복제 및 양방향 트랜잭션 복제입니다.
트랜잭션 복제를 사용하면 일괄 처리 서버가 응용 프로그램에 필요한 데이터만 수신하도록 열 및 행을 필터링할 수 있습니다. 자세한 내용은 게시된 데이터 필터링을 참조하십시오.
트랜잭션 복제를 사용하면 피어 투 피어 복제 또는 양방향 옵션을 사용하여 양방향으로 변경 내용을 전파할 수 있습니다. 자세한 내용은 피어 투 피어 트랜잭션 복제 및 양방향 트랜잭션 복제를 참조하십시오.
이 시나리오 구현을 위한 단계
이 시나리오를 구현하려면 우선 게시와 구독을 생성한 다음 각 구독을 초기화해야 합니다. 각 단계에 대한 자세한 내용을 보려면 아래 링크를 클릭하십시오.
SQL Server Management Studio: 방법: 피어 투 피어 트랜잭션 복제 구성(SQL Server Management Studio)
복제 Transact-SQL 프로그래밍: 방법: 피어 투 피어 트랜잭션 복제 구성(복제 Transact-SQL 프로그래밍)
구독이 초기화되고 게시자와 구독자 간 데이터 흐름이 시작된 후 일반적인 관리 및 모니터링 태스크에 대한 정보를 보려면 다음 항목을 참조하십시오.