복제 작동 방법

Microsoft SQL Server Compact 3.5에서 병합 복제는 다음과 같은 프로세스로 수행됩니다.

  1. 데이터가 SQL Server에 게시됩니다.

  2. 게시에 대한 구독이 생성됩니다.

  3. 구독자에서 데이터가 업데이트됩니다.

  4. 데이터가 동기화됩니다.

다음 표에서는 이 섹션에서 사용되는 몇 가지 용어를 정의합니다.

용어

정의

아티클

복제에 사용할 수 있는 데이터베이스 테이블입니다.

게시

아티클 모음입니다.

파티션

게시에 있는 행 또는 열의 특정 집합입니다.

게시자

복제를 통해 게시를 사용할 수 있도록 하는 데이터베이스입니다.

구독자

복제된 데이터를 수신하고 데이터 변경 내용을 게시자에게 다시 전달할 수 있는 데이터베이스입니다.

구독

구독자에게 전달할 게시 복사 요청입니다.

구독 데이터베이스

게시자가 게시한 아티클을 수신하는 데이터베이스입니다.

데이터 게시

게시는 게시할 데이터를 지정합니다. 일반적으로 게시는 서로 다른 사용자나 사용자 그룹으로 사용자 지정됩니다. 모든 사용자에게 동일한 데이터가 필요한 경우가 있습니다. 예를 들어 모든 직원에게 회사 직원 주소록의 복사본이 필요할 수 있습니다. 사용자 그룹에 따라 서로 다른 데이터 파티션이 필요한 경우도 있습니다. 예를 들어 영업 담당자에게는 특정 데이터 집합이 필요한 반면 고객 기술 지원 담당자에게는 다른 데이터 집합이 필요할 수 있습니다. 또한 개인마다 특별히 필터링된 데이터가 필요할 수도 있습니다. 예를 들어 영업 담당자는 자신의 고객 계정에 대한 데이터만 필요할 수 있습니다.

게시를 만들 때 게시에 포함할 아티클을 지정합니다. SQL Server 게시에는 저장 프로시저, 뷰 및 사용자 정의 함수와 같은 다른 데이터베이스 개체가 포함될 수 있지만 SQL Server Compact 3.5 복제는 이러한 개체를 무시하고 테이블만 SQL Server Compact 3.5 구독에 포함시킵니다. 필터링을 통해 아티클에 포함할 행과 열을 지정할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서에서 "복제"를 참조하십시오.

게시 구독

게시를 정의하면 응용 프로그램은 SQL Server Compact 3.5Replication 개체나 SqlCeReplication 클래스에 의해 표시되는 메서드를 호출하거나 SQL Server Management Studio의 새 구독 마법사를 사용하여 장치에서 프로그래밍 방식으로 해당 게시를 구독합니다. 구독이 생성되면 배포자의 초기 스냅숏이 구독자의 구독 데이터베이스에 적용됩니다.

구독자에서 데이터 업데이트

응용 프로그램에서 구독 데이터베이스를 업데이트합니다. 병합 복제는 각 구독 데이터베이스가 자율적으로 업데이트되도록 허용합니다. 업데이트는 장치가 네트워크에 연결되어 있는지 여부에 관계없이 수행될 수 있습니다. 각 SQL Server Compact 3.5 데이터베이스는 변경 내용 추적을 사용하여 SQL Server Compact 3.5 구독자에서 실행된 INSERT, UPDATE 및 DELETE 문을 추적합니다. 행 수준 및 열 수준 추적을 모두 사용할 수 있습니다.

데이터 동기화

일반적으로 사용자는 네트워크에 간헐적으로 장치를 연결합니다. 이러한 연결을 통해 응용 프로그램은 구독자의 변경 내용을 게시자의 변경 내용과 동기화할 수 있습니다. 응용 프로그램은 Replication 개체나 SqlCeReplication 클래스에 의해 표시되는 동기화 메서드를 호출하여 동기화를 시작합니다. 동기화는 4단계 프로세스입니다.

  1. 변경 내용을 추출하고 입력 메시지 파일을 만듭니다.

    SQL Server Compact 3.5 클라이언트 에이전트는 SQL Server Compact 3.5 구독자에 있는 구독 데이터베이스에서 삽입, 업데이트 및 삭제된 모든 레코드를 추출하여 HTTP를 통해 SQL Server Compact 3.5 서버 에이전트로 전파합니다. SQL Server Compact 3.5 서버 에이전트는 새 입력 메시지 파일을 만들고 SQL Server Compact 3.5 클라이언트 에이전트에서 전송한 삽입, 업데이트 및 삭제 내용을 해당 파일에 기록합니다.

  2. SQL Server 조정자 프로세스를 실행하고 변경 내용을 게시 데이터베이스에 적용합니다.

    모든 요청을 입력 메시지 파일에 기록하면 SQL Server Compact 3.5 서버 에이전트는 SQL Server 조정자를 시작합니다. SQL Server 조정자는 SQL Server Compact 3.5 복제 공급자를 로드합니다. 이 복제 공급자는 입력 메시지 파일을 읽고 게시자의 게시 데이터베이스에 적용되어야 하는 SQL Server Compact 3.5 구독 데이터베이스의 변경 내용을 SQL Server 조정자에게 알립니다. 처리 중에 SQL Server 조정자는 충돌을 검색하여 해결합니다. 충돌은 둘 이상의 구독자나 게시자가 같은 레코드를 업데이트할 때 발생합니다.

    참고

    SQL Server 조정자는 충돌 해결 프로그램을 사용하여 충돌을 해결합니다. SQL Server와 함께 제공되는 충돌 해결 프로그램을 사용하여 SQL Server Compact 3.5 복제 응용 프로그램에 대한 간단한 충돌 해결을 구현하거나 사용자 지정 충돌 해결 프로그램을 작성하여 보다 정교한 솔루션을 구현할 수 있습니다. 자세한 내용은 복제 충돌 검색 및 해결 방법을 참조하십시오.

  3. 출력 메시지 파일을 만듭니다.

    SQL Server 조정자는 장치의 구독 데이터베이스에 적용되어야 하는 게시자의 변경 내용을 SQL Server Compact 3.5 복제 공급자에게 알립니다. SQL Server Compact 3.5 복제 공급자는 IIS가 실행되는 서버의 출력 메시지 파일에 이러한 변경 내용을 기록합니다.

  4. 출력 메시지 파일을 읽고 SQL Server Compact 3.5 구독 데이터베이스에 변경 내용을 적용합니다.

    SQL Server 조정자 프로세스가 완료되면 SQL Server Compact 3.5 서버 에이전트는 SQL Server Compact 3.5 복제 공급자에서 만든 출력 메시지 파일을 찾습니다. 이 파일에는 게시자에서 발생하고 장치의 구독 데이터베이스에 적용되어야 하는 변경 내용이 포함됩니다. SQL Server Compact 3.5 서버 에이전트는 출력 메시지 파일을 읽고 장치의 SQL Server Compact 3.5 클라이언트 에이전트에 전송합니다. SQL Server Compact 3.5 클라이언트 에이전트는 출력 메시지 파일의 변경 내용을 SQL Server Compact 3.5 구독 데이터베이스에 적용합니다.

    참고

    SQL Server Compact 3.5 클라이언트 에이전트는 장치의 구독 데이터베이스를 읽거나 변경 내용을 해당 데이터베이스에 적용할 때 논리 블록으로 입력 및 출력 메시지 파일을 모두 처리합니다. SQL Server Compact 3.5 클라이언트 에이전트는 이러한 방식으로 각 메시지 파일을 처리하여 장치의 전체 메시지 파일을 기록하지 않고 장치에서 저장 공간을 보존합니다.

SQL Server Compact 3.5 클라이언트 에이전트가 장치의 구독 데이터베이스에 모든 변경 내용을 통합하고 모든 충돌을 해결하면 게시 및 구독 데이터베이스가 동기화되고 데이터가 수렴됩니다. 그러나 업데이트는 지속적으로 발생하므로 게시자와 구독자에서 데이터 값이 동일하지 않을 수 있습니다.

중요

같은 데이터베이스에서 두 병합 복제 프로세스를 동시에 시작할 수는 없습니다.