데이터 동기화Synchronize Data

데이터 동기화란 초기 스냅숏이 구독자에 적용된 후 게시자와 구독자 간에 데이터 및 스키마 변경 내용이 전파되는 프로세스를 말합니다.Synchronizing data refers to the process of data and schema changes being propagated between the Publisher and Subscribers after the initial snapshot has been applied at the Subscriber. 동기화는 다음과 같은 방식으로 발생할 수 있습니다.Synchronization can occur:

  • 계속 - 트랜잭션 복제에 일반적임Continuously, which is typical for transactional replication.

  • 요청 시 - 병합 복제에 일반적임On demand, which is typical for merge replication.

  • 일정대로 - 스냅숏 복제에 일반적임On a schedule, which is typical for snapshot replication.

    구독이 동기화되면 사용하는 복제 유형에 따라 다른 프로세스가 발생합니다.When a subscription is synchronized, different processes occur based on the type of replication you are using:

  • 스냅숏 복제.Snapshot replication. 동기화란 배포 에이전트가 구독 데이터베이스의 스키마와 데이터가 게시 데이터베이스와 일치하도록 구독자에 스냅숏을 다시 적용하는 것을 말합니다.Synchronization means that the Distribution Agent reapplies the snapshot at the Subscriber so that schema and data at the subscription database is consistent with the publication database.

    게시자에서 데이터와 스키마를 수정한 경우 수정 내용을 구독자에 전파하려면 새 스냅숏을 생성해야 합니다.If modifications to data or schema have been made at the Publisher, a new snapshot must be generated in order to propagate modifications to the Subscriber.

  • 트랜잭션 복제.Transactional replication. 동기화란 배포 에이전트가 업데이트, 삽입, 삭제 및 기타 변경 내용을 배포 데이터베이스에서 구독자로 전송하는 것을 말합니다.Synchronization means that the Distribution Agent transfers updates, inserts, deletes, and any other changes from the distribution database to the Subscriber.

  • 병합 복제.Merge replication. 동기화란 병합 에이전트가 변경 내용을 구독자에서 게시자로 업로드한 다음 게시자에서 구독자로 변경 내용을 다운로드하는 것을 말합니다.Synchronization means that the Merge Agent uploads changes from the Subscriber to the Publisher and then downloads changes from the Publisher to the Subscriber. 충돌이 발생할 경우 이를 감지하여 해결합니다.Conflicts, if any, are detected and resolved. 데이터는 일치되고 게시자와 모든 구독자는 결국 같은 데이터 값을 갖게 됩니다.Data is converged, and the Publisher and all Subscribers eventually end up with the same data values. 충돌이 감지되고 해결될 때 일부 사용자가 커밋한 작업은 사용자가 정의한 정책에 따라 충돌을 해결하도록 변경됩니다.If conflicts were detected and resolved, work that was committed by some of the users is changed to resolve the conflict according to policies you define.

    스냅숏 게시는 동기화가 발생할 때마다 구독자에서 스키마를 완전히 새로 고치므로 모든 스키마 변경 내용이 구독자에 적용됩니다.Snapshot publications completely refresh the schema at the Subscriber every time synchronization occurs, so all schema changes are applied to the Subscriber. 트랜잭션 복제 및 병합 복제 또한 가장 일반적인 스키마 변경을 지원합니다.Transactional replication and merge replication also support the most common schema changes. 자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하세요.For more information, see Make Schema Changes on Publication Databases.

    밀어넣기 구독을 동기화하려면 밀어넣기 구독 동기화를 참조하십시오.To synchronize a push subscription, see Synchronize a Push Subscription.

    끌어오기 구독을 동기화하려면 끌어오기 구독 동기화를 참조하십시오.To synchronize a pull subscription, see Synchronize a Pull Subscription.

    동기화 일정을 설정하려면 동기화 일정 지정을 참조하십시오.To set synchronization schedules, see Specify Synchronization Schedules.

    동기화 충돌을 보고 해결하려면To view and resolve synchronization conflicts

  • SQL Server Management StudioSQL Server Management Studio: [병합 게시에 대한 데이터 충돌 보기 및 해결(SQL Server Management Studio)](../../relational-databases/replication/view-and-resolve-data-conflicts-for-merge-publications.md)(../../relational-databases/replication/view-and-resolve-data-conflicts-for-merge-publications.md)

  • SQL Server Management StudioSQL Server Management Studio: [트랜잭션 게시의 데이터 충돌 확인(SQL Server Management Studio)](../../relational-databases/replication/view-data-conflicts-for-transactional-publications-sql-server-management-studio.md)(../../relational-databases/replication/view-data-conflicts-for-transactional-publications-sql-server-management-studio.md)

동기화 중 코드 실행Executing Code During Synchronization

복제는 동기화하는 동안 코드를 실행하는 두 가지 방법을 지원합니다.Replication supports two methods of executing code during synchronization

  • 요청 시 스크립트 실행은 트랜잭션 복제와 병합 복제에 대해 지원됩니다.On demand script execution is supported for transactional replication and merge replication. 요청 시 스크립트 실행을 사용하면 동기화하는 동안 SQL 스크립트가 실행되도록 지정할 수 있습니다.Using on demand script execution you can specify a SQL script to run during synchronization. 스크립트는 구독자에 복사된 다음 동기화 프로세스 시작 시 sqlcmd 를 사용하여 실행됩니다.The script is copied to the Subscriber and executed using sqlcmd at the beginning of the synchronization process. 복제된 변경 내용이 구독자에 적용될 때 스크립트를 통해 이러한 변경 내용에 액세스할 수 없습니다.The script does not have access to the replicated changes as they are applied to the Subscriber. 자세한 내용은 동기화 중 스크립트 실행(복제 Transact-SQL 프로그래밍)을 참조하세요.For more information, see Execute Scripts During Synchronization (Replication Transact-SQL Programming).

  • 비즈니스 논리 처리기는 병합 복제에 대해 지원됩니다.Business logic handlers are supported for merge replication. 비즈니스 논리 처리기 프레임워크를 사용하면 병합 동기화 과정 동안 호출되는 관리 코드 어셈블리를 작성할 수 있습니다.Using the business logic handler framework you can write a managed code assembly that is called during the merge synchronization process. 이 어셈블리에는 동기화 중 데이터 변경, 충돌, 오류 등의 여러 상황에 응답할 수 있는 비즈니스 논리가 포함되어 있습니다.The assembly includes business logic that can respond to a number of conditions during synchronization: data changes, conflicts, and errors. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하세요.For more information, see Execute Business Logic During Merge Synchronization.

관련 항목:See Also

병합 복제 충돌 감지 및 해결Detect and Resolve Merge Replication Conflicts