데이터 동기화
적용 대상: SQL Server Azure SQL Managed Instance
데이터 동기화는 초기 스냅샷이 구독자에 적용된 후 게시자와 구독자 간에 전파되는 데이터 및 스키마 변경의 프로세스를 의미합니다. 동기화는 다음과 같은 방식으로 발생할 수 있습니다.
트랜잭션 복제에 일반적입니다.
요청 시 병합 복제에 일반적입니다.
일정에 따라 스냅샷 복제에 일반적입니다.
구독이 동기화되면 사용 중인 복제 유형에 따라 다른 프로세스가 발생합니다.
스냅샷 복제. 동기화는 구독 데이터베이스의 스키마 및 데이터가 게시 데이터베이스와 일치하게 배포 에이전트 구독자에서 스냅샷을 다시 표시한다는 것을 의미합니다.
게시자에서 데이터 또는 스키마를 수정한 경우 구독자에 수정 내용을 전파하려면 새 스냅샷을 생성해야 합니다.
트랜잭션 복제. 동기화는 배포 에이전트 업데이트, 삽입, 삭제 및 배포 데이터베이스에서 구독자에 대한 기타 변경 내용을 전송한다는 것을 의미합니다.
병합 복제. 동기화는 병합 에이전트가 구독자의 변경 내용을 게시자에게 업로드한 다음 게시자의 변경 내용을 구독자에게 다운로드하는 것을 의미합니다. 충돌이 감지되고 해결됩니다(있는 경우). 데이터는 일치되고 게시자와 모든 구독자는 결국 같은 데이터 값을 갖게 됩니다. 충돌이 감지되고 해결된 경우 사용자가 정의한 정책에 따라 충돌을 해결하기 위해 일부 사용자가 커밋한 작업이 변경됩니다.
스냅샷 게시는 동기화가 발생할 때마다 구독자에서 스키마를 완전히 새로 고치므로 모든 스키마 변경 내용이 구독자에 적용됩니다. 트랜잭션 복제 및 병합 복제 또한 가장 일반적인 스키마 변경을 지원합니다. 자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하세요.
밀어넣기 구독을 동기화하려면 밀어넣기 구독 동기화를 참조하세요.
끌어오기 구독을 동기화하려면 끌어오기 구독 동기화를 참조하세요.
동기화 일정을 설정하려면 동기화 일정 지정을 참조하세요.
동기화 충돌을 보고 해결하려면
SQL Server Management Studio: 병합 게시에 대한 데이터 충돌 보기 및 해결(SQL Server Management Studio)
SQL Server Management Studio: 트랜잭션 게시의 데이터 충돌 확인(SQL Server Management Studio)
동기화 중 코드 실행
복제는 동기화 중에 코드를 실행하는 두 가지 방법을 지원합니다.
요청 시 스크립트 실행은 트랜잭션 복제와 병합 복제에 대해 지원됩니다. 주문형 스크립트 실행을 사용하여 동기화 중에 실행할 SQL 스크립트를 지정할 수 있습니다. 스크립트는 구독자에 복사되고 동기화 프로세스 시작 시 sqlcmd를 사용하여 실행됩니다. 스크립트는 구독자에 적용되므로 복제된 변경 내용에 액세스할 수 없습니다. 자세한 정보는 동기화 중 스크립트 실행(복제 Transact-SQL 프로그래밍)을 참조하세요.
비즈니스 논리 처리기는 병합 복제에 대해 지원됩니다. 비즈니스 논리 처리기 프레임워크를 사용하면 병합 동기화 과정 동안 호출되는 관리 코드 어셈블리를 작성할 수 있습니다. 어셈블리에는 동기화 중에 데이터 변경, 충돌 및 오류와 같은 다양한 조건에 대응할 수 있는 비즈니스 논리가 포함됩니다. 자세한 내용은 병합 동기화 중 비즈니스 논리 실행을 참조하세요.