Best Practices for Replication Administration

적용 대상:SQL ServerAzure SQL Managed Instance

복제를 구성한 후에는 복제 토폴로지 관리 방법을 이해하는 것이 중요합니다. 이 항목에서는 각 영역에 대한 자세한 정보에 대한 링크가 있는 여러 영역에 대한 기본 모범 사례 지침을 제공합니다. 이 항목에 제시된 모범 사례 지침을 따르는 것 외에도 자주 묻는 질문 항목을 읽고 일반적인 질문과 문제인 복제 관리자를 위한 질문과 대답을 알아보세요.

모범 사례 지침을 다음 두 영역으로 나누는 것이 유용합니다.

  • 다음 정보는 모든 복제 토폴로지에서 구현해야 하는 모범 사례를 다룹니다.

    • 백업 및 복원 전략을 개발하고 테스트합니다.

    • 복제 토폴로지 스크립션

    • 임계값 및 경고를 만듭니다.

    • 복제 토폴로지 모니터링

    • 성능 기준선 설정 및 복제 튜닝(필요한 경우)

  • 다음 정보는 토폴로지에 대해 고려할 최선의 방법입니다(필수는 아님).

    • 주기적으로 데이터의 유효성을 검사합니다.

    • 프로필을 통해 에이전트 매개 변수를 조정합니다.

    • 게시 및 배포 보존 기간을 조정합니다.

    • 애플리케이션 요구 사항이 변경되는 경우 아티클 및 게시 속성을 변경하는 방법을 이해합니다.

    • 애플리케이션 요구 사항이 변경되는 경우 스키마를 변경하는 방법을 이해합니다.

백업 및 복원 전략 개발 및 테스트

모든 데이터베이스는 정기적으로 백업해야 하며 이러한 백업을 복원하는 기능은 주기적으로 테스트해야 합니다. 복제된 데이터베이스도 다르지 않습니다. 다음 데이터베이스는 정기적으로 백업해야 합니다.

  • 게시 데이터베이스

  • 배포 데이터베이스

  • 구독 데이터베이스

  • 게시자, 배포자 및 모든 구독자의msdb 데이터베이스 및 master 데이터베이스

복제된 데이터베이스는 데이터 백업 및 복원과 관련하여 특별히 주의해야 합니다. 자세한 내용은 복제된 데이터베이스 백업 및 복원을 참조 하세요.

복제 토폴로지 스크립션

토폴로지의 모든 복제 구성 요소는 재해 복구 계획의 일부로 스크립팅되어야 하며 반복 태스크를 자동화하는 데도 스크립트를 사용할 수 있습니다. 스크립트에는 게시 또는 구독과 같은 스크립팅된 복제 구성 요소를 구현하는 데 필요한 Transact-SQL 시스템 저장 프로시저가 포함되어 있습니다. 구성 요소를 만든 후 마법사(예: 새 게시 마법사) 또는 Microsoft SQL Server Management Studio에서 스크립트를 만들 수 있습니다. SQL Server Management Studio 또는 sqlcmd를 사용하여 스크립트를 보고 수정하고 실행할 수 있습니다. 백업 파일과 함께 스크립트를 저장하여 복제 토폴로지를 다시 구성할 때 사용할 수 있습니다. 자세한 내용은 복제 스크립팅을 참조 하세요.

속성이 변경된 경우 구성 요소를 다시 스크립팅해야 합니다. 트랜잭션 복제와 함께 사용자 지정 저장 프로시저를 사용하는 경우 각 프로시저의 복사본을 스크립트와 함께 저장해야 합니다. 프로시저가 변경되면 복사본을 업데이트해야 합니다(일반적으로 스키마 변경 또는 애플리케이션 요구 사항 변경으로 인해 프로시저가 업데이트됨). 사용자 지정 프로시저에 대한 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.

성능 기준선 설정 및 복제 튜닝(필요한 경우)

복제를 구성하기 전에 복제 성능에 영향을 주는 요소를 익혀 두는 것이 좋습니다.

  • 서버 및 네트워크 하드웨어

  • 데이터베이스 설계

  • 배포자 구성

  • 게시 디자인 및 옵션

  • 필터 디자인 및 사용

  • 구독 옵션

  • 스냅샷 옵션

  • 에이전트 매개 변수

  • 유지 관리

복제를 구성한 후에는 애플리케이션 및 토폴로지에 일반적인 워크로드를 사용하여 복제가 작동하는 방식을 결정할 수 있는 성능 기준을 개발하는 것이 좋습니다. 복제 모니터 및 시스템 모니터를 사용하여 다음 5차원 복제 성능에 대한 일반적인 숫자를 확인합니다.

  • 대기 시간: 복제 토폴로지의 노드 간에 데이터 변경이 전파되는 데 걸리는 시간입니다.

  • 처리량: 시스템이 시간이 지남에 따라 유지할 수 있는 복제 작업의 양(일정 기간 동안 전달된 명령으로 측정)입니다.

  • 동시성: 시스템에서 동시에 작동할 수 있는 복제 프로세스의 수입니다.

  • 동기화 기간: 지정된 동기화를 완료하는 데 걸리는 시간입니다.

  • 리소스 사용: 복제 처리의 결과로 사용되는 하드웨어 및 네트워크 리소스입니다.

트랜잭션 복제를 기반으로 하는 시스템에는 일반적으로 짧은 대기 시간과 높은 처리량이 필요하기 때문에 대기 시간 및 처리량은 트랜잭션 복제와 가장 관련이 있습니다. 병합 복제를 기반으로 빌드된 시스템에는 종종 많은 수의 구독자가 있고 게시자는 이러한 구독자와 상당한 수의 동시 동기화를 가질 수 있으므로 동시성 및 동기화 기간은 병합 복제와 가장 관련이 있습니다.

기준 번호를 설정한 후 복제 모니터에서 임계값을 설정합니다. 자세한 내용은 복제 모니터 에서 임계값 및 경고 설정 및 복제 에이전트 이벤트에 대한 경고 사용을 참조하세요. 성능 문제가 발생하면 위에 나열된 성능 향상 항목의 제안 사항을 읽어 보고 발생한 문제점에 영향을 주는 영역에서 필요한 사항을 변경하는 것이 좋습니다.

임계값 및 경고 만들기

복제 모니터를 사용하면 상태 및 성능과 관련된 여러 임계값을 설정할 수 있습니다. 사용하는 토폴로지에 적합한 임계값을 설정하는 것이 좋습니다. 임계값에 도달하면 경고가 표시되며 선택적으로 경고를 전자 메일 계정, 호출기 또는 다른 디바이스로 보낼 수 있습니다. 자세한 내용은 Set Thresholds and Warnings in Replication Monitor를 참조하세요.

복제는 모니터링 임계값과 연결할 수 있는 경고 외에도 복제 에이전트 작업에 응답하는 미리 정의된 여러 경고를 제공합니다. 관리자가 이러한 경고를 사용하면 복제 토폴로지의 상태에 대한 정보를 계속 받아볼 수 있습니다. 경고를 설명하는 항목을 읽고 관리 요구 사항에 맞는 항목을 사용하는 것이 좋습니다(필요한 경우 추가 경고를 만들 수도 있습니다). 자세한 내용은 복제 에이전트 이벤트에 대한 경고 사용을 참조 하세요.

복제 토폴로지 모니터링

복제 토폴로지를 적용하고 임계값과 경고를 구성한 다음에는 복제를 정기적으로 모니터링하는 것이 좋습니다. 복제 토폴로지의 모니터링은 복제 배포의 중요한 부분입니다. 복제 작업이 배포되므로 복제에 관련된 모든 컴퓨터에서 활동 및 상태를 추적해야 합니다. 다음 도구를 사용하여 복제를 모니터링할 수 있습니다.

  • 복제 모니터는 복제를 모니터링하는 가장 중요한 도구로 이를 사용하여 복제 토폴로지의 전체적 상태를 모니터링할 수 있습니다. 자세한 내용은 복제 모니터링을 참조 하세요.

  • Transact-SQL 및 RMO(복제 관리 개체)는 복제를 모니터링하기 위한 인터페이스를 제공합니다. 자세한 내용은 복제 모니터링을 참조 하세요.

  • 시스템 모니터는 복제 성능을 모니터링하는 데 유용할 수도 있습니다. 자세한 내용은 Monitoring Replication with System Monitor을 참조하세요.

주기적으로 데이터 유효성 검사

복제에는 유효성 검사가 필요하지 않지만 트랜잭션 복제 및 병합 복제에 대해 정기적으로 유효성 검사를 실행하는 것이 좋습니다. 유효성 검사를 사용하면 구독자의 데이터가 게시자의 데이터와 일치하는지 확인할 수 있습니다. 유효성 검사에 성공하면 해당 시점에 게시자의 모든 변경 내용이 구독자에 복제되고(구독자에서 업데이트가 지원되는 경우 구독자에서 게시자로) 두 데이터베이스가 동기화되어 있음을 나타냅니다.

유효성 검사를 게시 데이터베이스의 백업 일정에 따라 수행하는 것이 좋습니다. 예를 들어 게시 데이터베이스를 일주일에 한 번 전체 백업하면 유효성 검사도 일주일에 한 번 백업이 완료된 후에 실행할 수 있습니다. 자세한 내용은 복제된 데이터의 유효성 검사를 참조하세요.

필요한 경우 에이전트 프로필을 사용하여 에이전트 매개 변수 변경

에이전트 프로필은 복제 에이전트 매개 변수를 설정하는 편리한 방법을 제공합니다. 에이전트 명령줄에서도 매개 변수를 지정할 수 있지만 매개 변수 값을 변경해야 하는 경우 일반적으로 미리 정의된 에이전트 프로필을 사용하거나 새 프로필을 만드는 것이 더 적합합니다. 예를 들어 병합 복제를 사용하고 구독자가 광대역 연결에서 전화 접속 연결로 이동하는 경우 병합 에이전트에 대해 느린 링크 프로필을 사용하는 것이 좋습니다. 이 프로필은 느린 통신 링크에 더 적합한 매개 변수 집합을 사용합니다. 자세한 내용은 복제 에이전트 프로필을 참조 하세요.

필요한 경우 게시 및 배포 보존 기간 조정

트랜잭션 복제 및 병합 복제는 보존 기간을 사용하여 각각 트랜잭션이 배포 데이터베이스에 저장되는 기간과 구독이 동기화되어야 하는 빈도를 결정합니다. 처음에는 기본 설정을 사용하지만 토폴로지를 모니터링하여 설정에 조정이 필요한지 확인하는 것이 좋습니다. 예를 들어 병합 복제의 경우 게시 보존 기간(기본값: 14일)은 시스템 테이블에 메타데이터를 저장하는 기간을 결정합니다. 구독이 항상 5일 이내에 동기화되는 경우 설정을 더 낮은 숫자로 조정하여 메타데이터를 줄이고 성능이 향상될 수 있습니다. 자세한 내용은 Subscription Expiration and Deactivation을(를) 참조하세요.

애플리케이션 요구 사항이 변경된 경우 게시 수정 방법 이해

게시를 만든 후에는 아티클을 추가 또는 삭제하거나 게시 및 아티클 속성을 변경해야 할 수 있습니다. 대부분의 변경 내용은 게시를 만든 후에 허용되지만 경우에 따라 게시에 대한 새 스냅샷을 생성하거나 게시에 대한 구독을 다시 초기화해야 합니다. 자세한 내용은 게시 및 아티클 속성 변경 및 기존 게시에 아티클 추가 및 삭제를 참조하세요.

애플리케이션 요구 사항이 변경되는 경우 스키마를 변경하는 방법 이해

_대부분의 경우 애플리케이션을 제작한 후에 스키마를 변경해야 합니다. 복제 토폴로지에서 이러한 변경 내용은 종종 모든 구독자에게 전파되어야 합니다. 복제는 게시된 개체에 대한 광범위한 스키마 변경을 지원합니다. Microsoft SQL Server 게시자에서 게시된 적절한 개체에 대해 다음 스키마를 변경하는 경우 해당 변경 내용은 기본적으로 모든 SQL Server 구독자에게 전파됩니다.

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하세요.

참고 항목

복제 관리 FAQ