최선의 복제 관리 방법Best Practices for Replication Administration

복제를 구성한 후에는 복제 토폴로지 관리 방법을 이해하는 것이 중요합니다.After you have configured replication, it is important to understand how to administer a replication topology. 이 항목에서는 다양한 영역의 작업에 대한 기본적인 수행 방법과 각 영역에 대한 추가 정보를 제공하는 링크를 제공합니다.This topic provides basic best practice guidance in a number of areas with links to more information for each area. 이 항목에 제공된 복제 관리자를 위한 질문과 대답의 모범 사례 지침 외에도 FAQ 항목을 읽고 일반적인 질문 사항과 문제점에 대해 숙지하세요.In addition to following the best practice guidance presented in this topic, consider reading through the frequently asked questions topic to acquaint yourself with common questions and issues: Frequently Asked Questions for Replication Administrators.

최선의 수행 방법을 다음과 같은 두 가지 영역으로 나누면 이해가 쉽습니다.It is useful to divide the best practice guidance into two areas:

  • 다음 정보는 모든 복제 토폴로지에 대해 구현해야 하는 최선의 방법에 대해 설명합니다.The following information covers best practices that should be implemented for all replication topologies:

    • 백업과 복원 전략 개발 및 테스트Develop and test a backup and restore strategy.

    • 복제 토폴로지 스크립팅Script the replication topology.

    • 임계값 및 경고 만들기Create thresholds and alerts.

    • 복제 토폴로지 모니터링Monitor the replication topology.

    • 성능 기준선 설정 및 복제 튜닝(필요한 경우)Establish performance baselines and tune replication if necessary.

  • 다음 정보는 토폴로지에 대해 고려할 최선의 방법입니다(필수는 아님).The following information covers best practices that should be considered, but might not be required for your topology:

    • 주기적으로 데이터 유효성 검사Validate data periodically.

    • 프로필을 통해 에이전트 매개 변수 조정Adjust agent parameters through profiles.

    • 게시 및 배포 보존 기간 조정Adjust publication and distribution retention periods.

    • 응용 프로그램 요구 사항이 변경된 경우 아티클 및 게시 속성을 변경하는 방법 이해Understand how to change article and publication properties if application requirements change.

    • 응용 프로그램 요구 사항이 변경된 경우 스키마를 변경하는 방법 이해Understand how to make schema changes if application requirements change.

백업과 복원 전략 개발 및 테스트Develop and test a backup and restore strategy

모든 데이터베이스는 정기적으로 백업되어야 하고 이러한 백업을 복원하는 기능도 정기적으로 테스트해야 합니다. 복제된 데이터베이스도 마찬가지입니다.All databases should be backed up on a regular basis, and the ability to restore those backups should be tested periodically; replicated databases are no different. 다음 데이터베이스는 반드시 정기적으로 백업되어야 합니다.The following databases should be backed up regularly:

  • 게시 데이터베이스Publication database

  • 배포 데이터베이스Distribution database

  • 구독 데이터베이스Subscription databases

  • 게시자, 배포자 및 모든 구독자의msdb 데이터베이스 및 master 데이터베이스msdb database and master database at the Publisher, Distributor, and all Subscribers

    복제된 데이터베이스의 경우 데이터를 백업 및 복원할 때 특별히 주의를 기울여야 합니다.Replicated databases require special attention with regards to backing up and restoring data. 자세한 내용은 복제된 데이터베이스 백업 및 복원을 참조하세요.For more information, see Back Up and Restore Replicated Databases.

복제 토폴로지 스크립팅Script the replication topology

토폴로지의 모든 복제 구성 요소는 재해 복구 계획의 일부로 스크립팅되어야 하며 반복 태스크를 자동화하는 데도 스크립트를 사용할 수 있습니다.All replication components in a topology should be scripted as part of a disaster recovery plan, and scripts can also be used to automate repetitive tasks. 스크립트에는 게시 또는 구독과 같이 스크립팅된 복제 구성 요소를 구현하는 데 필요한 Transact-SQLTransact-SQL 시스템 저장 프로시저가 포함되어 있습니다.A script contains the Transact-SQLTransact-SQL system stored procedures necessary to implement the replication component(s) scripted, such as a publication or subscription. 구성 요소를 만든 후에 마법사(예: 새 게시 마법사) 또는 MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio 에서 스크립트를 만들 수 있습니다.Scripts can be created in a wizard (such as the New Publication Wizard) or in MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio after you create a component. SQL Server Management StudioSQL Server Management Studio 또는 sqlcmd를 사용하여 스크립트를 확인, 수정 및 실행할 수 있습니다.You can view, modify, and run the script using SQL Server Management StudioSQL Server Management Studio or sqlcmd. 백업 파일과 함께 스크립트를 저장하여 복제 토폴로지를 다시 구성할 때 사용할 수 있습니다.Scripts can be stored with backup files to be used in case a replication topology must be reconfigured. 자세한 내용은 Scripting Replication을 참조하세요.For more information, see Scripting Replication.

속성이 변경된 경우 구성 요소를 다시 스크립팅해야 합니다.A component should be rescripted if any property changes are made. 트랜잭션 복제에서 사용자 지정 저장 프로시저를 사용할 경우 각 프로시저의 복사본을 스크립트와 함께 저장해야 합니다. 프로시저가 변경되면 복사본도 업데이트해야 합니다. 일반적으로 프로시저는 스키마가 변경되거나 응용 프로그램 요구 사항이 변경될 때 업데이트됩니다.If you use custom stored procedures with transactional replication, a copy of each procedure should be stored with the scripts; the copy should be updated if the procedure changes (procedures are typically updated due to schema changes or changing application requirements). 사용자 지정 프로시저에 대한 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information about custom procedures, see Specify How Changes Are Propagated for Transactional Articles.

성능 기준선 설정 및 복제 튜닝(필요한 경우)Establish performance baselines and tune replication if necessary

복제를 구성하기 전에 복제 성능에 영향을 주는 요소를 익혀 두는 것이 좋습니다.Before replication is configured, it is recommended to familiarize yourself with the factors that affect replication performance:

  • 서버 및 네트워크 하드웨어Server and network hardware

  • 데이터베이스 디자인Database design

  • 배포자 구성Distributor configuration

  • 게시 디자인 및 옵션Publication design and options

  • 필터 디자인 및 사용Filter design and use

  • 구독 옵션Subscription options

  • 스냅숏 옵션Snapshot options

  • 에이전트 매개 변수Agent parameters

  • 유지 관리Maintenance

    복제를 구성한 다음에는 응용 프로그램 및 토폴로지에 일반적으로 사용되는 작업과의 복제 작동 방식을 결정할 수 있는 성능 기준선을 만드는 것이 좋습니다.After replication is configured, it is recommended to develop a performance baseline, which will allow you to determine how replication behaves with a workload that is typical for your applications and topology. 복제 모니터 및 시스템 모니터를 사용하여 다음과 같은 5가지 복제 성능의 일반적인 수치를 확인할 수 있습니다.Use Replication Monitor and System Monitor to determine typical numbers for the following five dimensions of replication performance:

  • 대기 시간: 복제 토폴로지의 노드 간에 데이터 변경 내용을 전파하는 데 소요되는 시간Latency: the amount of time it takes for a data change to be propagated between nodes in a replication topology.

  • 처리량: 시간에 따라 시스템에서 지속할 수 있는 복제 작업의 양(특정 기간 동안 배달된 명령으로 측정)Throughput: the amount of replication activity (measured in commands delivered over a period of time) a system can sustain over time.

  • 동시성: 시스템에서 동시에 작동될 수 있는 복제 프로세스의 수Concurrency: the number of replication processes that can operate on a system simultaneously.

  • 동기화 기간: 지정된 동기화를 완료하는 데 소요되는 시간Duration of synchronization: how long it takes a given synchronization to complete.

  • 리소스 소비량: 복제 처리의 결과로 사용되는 하드웨어 및 네트워크 리소스Resource consumption: hardware and network resources used as a result of replication processing.

    트랜잭션 복제를 기반으로 구축된 시스템은 일반적으로 짧은 대기 시간과 높은 처리량을 요구하므로 대기 시간과 처리량은 트랜잭션 복제에서 가장 중요한 요소입니다.Latency and throughput are most relevant to transactional replication, because systems built on transactional replication generally require low latency and high throughput. 병합 복제 위에 구축된 시스템에는 대개 많은 수의 구독자가 존재하며 게시자와 이러한 구독자 간에 상당히 많은 동시 동기화 작업이 수행될 수 있으므로 동시성과 동기화 기간은 병합 복제에서 가장 중요한 요소입니다.Concurrency and duration of synchronization are most relevant to merge replication, because systems built on merge replication often have a large number of Subscribers, and a Publisher can have a significant number of concurrent synchronizations with these Subscribers.

    기준 수치를 설정한 후에 복제 모니터에서 임계값을 설정합니다.After you have established baseline numbers, set thresholds in Replication Monitor. 자세한 내용은 복제 모니터에 임계값 및 경고 설정복제 에이전트 이벤트에 대한 경고 사용을 참조하세요.For more information, see Set Thresholds and Warnings in Replication Monitor and Use Alerts for Replication Agent Events. 성능 문제가 발생하면 위에 나열된 성능 향상 항목의 제안 사항을 읽어 보고 발생한 문제점에 영향을 주는 영역에서 필요한 사항을 변경하는 것이 좋습니다.If you encounter a performance problem, it is recommended to read through the suggestions in the enhancing performance topics listed above and to apply changes in areas that affect the issues you are encountering.

임계값 및 경고 만들기Create thresholds and alerts

복제 모니터를 사용하면 상태 및 성능과 관련된 여러 임계값을 설정할 수 있습니다.Replication Monitor allows you to set a number of thresholds related to status and performance. 사용하는 토폴로지에 적합한 임계값을 설정하는 것이 좋습니다. 임계값에 도달하면 경고가 표시되며 선택적으로 경고를 전자 메일 계정, 호출기 또는 다른 장치로 보낼 수 있습니다.It is recommended to set the appropriate thresholds for your topology; if a threshold is reached, a warning is displayed, and, optionally, an alert can be sent to an e-mail account, a pager, or other device. 자세한 내용은 Set Thresholds and Warnings in Replication Monitor를 참조하세요.For more information, see Set Thresholds and Warnings in Replication Monitor.

모니터링 임계값과 연결시킬 수 있는 경고 외에 복제는 복제 에이전트 동작에 응답하는 미리 정의된 여러 가지 경고를 제공합니다.In addition to the alerts that can be associated with monitoring thresholds, replication provides a number of predefined alerts that respond to replication agent actions. 관리자가 이러한 경고를 사용하면 복제 토폴로지의 상태에 대한 정보를 계속 받아볼 수 있습니다.These alerts can be used by an administrator to stay informed about the state of the replication topology. 경고에 대해 설명하는 항목을 자세히 읽고 관리 요구 사항에 맞는 경고를 사용하는 것이 좋습니다. 필요한 경우에는 추가 경고를 만들 수도 있습니다.It is recommended to read through the topic describing the alerts and to use any that fit your administration needs (it is also possible to create additional alerts if necessary). 자세한 내용은 복제 에이전트 이벤트에 대한 경고 사용을 참조하세요.For more information, see Use Alerts for Replication Agent Events.

복제 토폴로지 모니터링Monitor the replication topology

복제 토폴로지를 적용하고 임계값과 경고를 구성한 다음에는 복제를 정기적으로 모니터링하는 것이 좋습니다.After the replication topology is in place and thresholds and alerts have been configured, it is recommended to regularly monitor replication. 복제 토폴로지의 모니터링은 복제 배포의 중요한 부분입니다.Monitoring a replication topology is an important aspect of deploying replication. 복제 작업이 배포되므로 복제에 관련된 모든 컴퓨터에서 활동 및 상태를 추적해야 합니다.Because replication activity is distributed, it is essential to track activity and status across all computers involved in replication. 다음 도구를 사용하여 복제를 모니터링할 수 있습니다.The following tools can be used to monitor replication:

  • 복제 모니터는 복제를 모니터링하는 가장 중요한 도구로 이를 사용하여 복제 토폴로지의 전체적 상태를 모니터링할 수 있습니다.Replication Monitor is the most important tool for monitoring replication, allowing you to monitor the overall health of a replication topology. 자세한 내용은 Monitoring Replication을 참조하세요.For more information, see Monitoring Replication.

  • Transact-SQLTransact-SQL 및 RMO(복제 관리 개체)는 복제 모니터링을 위한 인터페이스를 제공합니다. and Replication Management Objects (RMO) provide interfaces for monitoring replication. 자세한 내용은 Monitoring Replication을 참조하세요.For more information, see Monitoring Replication.

  • 복제 성능을 모니터링하는 데에는 시스템 모니터도 유용할 수 있습니다.System Monitor can also be useful for monitoring replication performance. 자세한 내용은 Monitoring Replication with System Monitor을 참조하세요.For more information, see Monitoring Replication with System Monitor.

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

복제에 대해 유효성 검사를 반드시 수행할 필요는 없지만 트랜잭션 복제 및 병합 복제에 대해 주기적으로 유효성 검사를 실행하는 것이 좋습니다.Validation is not required by replication, but it is recommended to run validation periodically for transactional replication and merge replication. 유효성 검사를 사용하면 구독자의 데이터가 게시자의 데이터와 일치하는지 확인할 수 있습니다.Validation allows you to verify that data at the Subscriber matches data at the Publisher. 유효성 검사 성공은 검사를 수행한 시점에 게시자의 모든 변경 내용이 구독자로 복제되어(구독자에 업데이트가 지원되는 경우에는 구독자에서 게시자로도 복제됨) 두 데이터베이스가 동기화 상태에 있음을 나타냅니다.Successful validation indicates that at that point in time all changes from the Publisher have been replicated to the Subscriber (and from the Subscriber to the Publisher if updates are supported at the Subscriber) and that the two databases are in sync.

유효성 검사를 게시 데이터베이스의 백업 일정에 따라 수행하는 것이 좋습니다.It is recommended that validation be performed according to the backup schedule of the publication database. 예를 들어 게시 데이터베이스를 일주일에 한 번 전체 백업하면 유효성 검사도 일주일에 한 번 백업이 완료된 후에 실행할 수 있습니다.For example, if the publication database has a full backup once per week, validation could be run once per week after the backup completes. 자세한 내용은 복제된 데이터의 유효성 검사를 참조하세요.For more information, see Validate Replicated Data.

에이전트 프로필을 사용하여 에이전트 매개 변수 변경(필요한 경우)Use agent profiles to change agent parameters if necessary

에이전트 프로필은 복제 에이전트 매개 변수를 설정하는 편리한 방법을 제공합니다.Agent profiles provide a convenient method of setting replication agent parameters. 매개 변수를 에이전트 명령줄에서 지정할 수도 있지만 일반적으로 미리 정의된 에이전트 프로필을 사용하거나 매개 변수 값을 변경해야 할 경우에는 새 프로필을 만드는 것이 더 적합합니다.Parameters can also be specified on the agent command line, but it is typically more appropriate to use a predefined agent profile or to create a new profile if you need to change the value of a parameter. 예를 들어 병합 복제를 사용하고 구독자가 광대역 연결에서 전화 접속 연결로 이동하는 경우에는 병합 에이전트에 대해 느린 통신 연결에 더 적합한 매개 변수 집합을 사용하는 느린 연결 프로필을 사용하십시오.For example, if you are using merge replication and a Subscriber moves from a broadband connection to a dialup connection, consider using the slow link profile for the Merge Agent; this profile uses a set of parameters that are better suited to the slower communications link. 자세한 내용은 Replication Agent Profiles을 참조하세요.For more information, see Replication Agent Profiles.

게시 및 배포 보존 기간 조정(필요한 경우)Adjust publication and distribution retention periods if necessary

트랜잭션 복제 및 병합 복제는 보존 기간을 사용하여 각각 트랜잭션이 배포 데이터베이스에 저장되는 기간과 구독이 동기화되어야 하는 빈도를 결정합니다.Transactional replication and merge replication use retention periods to determine, respectively, how long transactions are stored in the distribution database, and how frequently a subscription must synchronize. 설정을 조정해야 할지 여부를 판단하기 위해 토폴로지를 모니터링하는 경우에는 초기 기본 설정을 사용하는 것이 좋습니다.It is recommended to use the default settings initially, but to monitor your topology to determine if the settings require adjustment. 예를 들어 병합 복제의 경우 게시 보존 기간(기본값: 14일)은 시스템 테이블에 메타데이터를 저장하는 기간을 결정합니다.For example, in the case of merge replication, the publication retention period (which defaults to 14 days) determines how long metadata is stored in system tables. 구독이 항상 5일 이내에 동기화되는 경우 설정을 낮게 조정하면 메타데이터가 줄어들고 성능이 향상될 수 있습니다.If subscriptions always synchronize within five days, consider adjusting the setting to a lower number, which will reduce metadata and possibly provide better performance. 자세한 내용은 Subscription Expiration and Deactivation을 참조하세요.For more information, see Subscription Expiration and Deactivation.

응용 프로그램 요구 사항이 변경된 경우 게시 수정 방법 이해Understand how to modify publications if application requirements change

게시를 만든 후에 아티클을 추가 또는 삭제하거나 게시 및 아티클 속성을 변경해야 할 수 있습니다.After you have created a publication, it might be necessary to add or drop articles, or change publication and article properties. 게시가 생성된 후에는 대부분의 변경이 허용되지만 일부 경우에 게시에 대한 스냅숏을 새로 생성하거나 게시에 대한 구독을 다시 초기화해야 합니다.Most changes are allowed after a publication is created, but in some cases, it is necessary to generate a new snapshot for a publication and/or reinitialize subscriptions to the publication. 자세한 내용은 게시 및 아티클 속성 변경기존 게시에 대한 아티클 추가 및 삭제를 참조하세요.For more information, see Change Publication and Article Properties and Add Articles to and Drop Articles from Existing Publications.

응용 프로그램 요구 사항이 변경된 경우 스키마 변경 방법 이해Understand how to make schema changes if application requirements change

_대부분의 경우 응용 프로그램을 제작한 후에 스키마를 변경해야 합니다.In many cases, schema changes are required after an application is in production. 복제 토폴로지에서는 이러한 변경 내용을 모든 구독자에 전파해야 하는 경우가 많습니다.In a replication topology, these changes must often be propagated to all Subscribers. 복제는 게시된 개체에 대한 다양한 스키마 변경을 지원합니다.Replication supports a wide range of schema changes to published objects. MicrosoftMicrosoft SQL ServerSQL Server 게시자에 게시된 개체에 대해 다음 스키마 변경을 수행하면 기본적으로 모든 SQL ServerSQL Server 구독자에 변경 내용이 전파됩니다.When you make any of the following schema changes on the appropriate published object at a MicrosoftMicrosoft SQL ServerSQL Server Publisher, that change is propagated by default to all SQL ServerSQL Server Subscribers:

관련 항목:See Also

관리(복제)Administration (Replication)