다중 사용자 액세스 및 동기화

Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)에서는 다중 사용자 액세스를 지원하므로 데이터베이스를 복제하는 동안에도 계속 데이터베이스에서 작업할 수 있습니다. 이때 게시자가 보내는 변경 내용으로 인해 충돌이 발생할 수 있습니다. 이를 로컬 데이터 충돌이라고 하며 SQL Server Compact Edition 를 사용하는 응용 프로그램을 개발할 경우 반드시 고려해야 합니다.

다중 사용자 액세스의 영향

SQL Server Compact Edition 를 사용하는 응용 프로그램을 디자인할 때는 다중 사용자 액세스가 데이터베이스에 주는 영향을 고려해야 합니다. 다음 표에서는 SQL Server Compact Edition 에서 기본으로 제공하는 일반 기능 및 각 기능과 연관된 문제점을 설명합니다.

기능 문제점

잠금

동기화하는 동안 게시자가 보낸 변경 내용이 데이터 잠금으로 인해 구독자 데이터베이스에 적용되지 않을 수 있습니다. 구독자에서 데이터를 변경하고 있으며 이 데이터가 장시간 동안 잠겨있을 경우 동기화가 실패할 수 있습니다.

이러한 문제를 완전히 방지하려면 동기화하는 동안 사용자가 데이터를 변경하지 못하도록 방지하는 논리를 응용 프로그램에 추가합니다.

유효성 검사

유효성 검사를 사용하는 경우 동기화하는 동안 SQL Server Compact Edition 데이터베이스의 행 수를 변경하면 유효성 검사가 실패합니다.

이러한 문제를 완전히 방지하려면 유효성 검사를 사용하여 동기화하는 동안 사용자가 데이터를 변경하지 못하도록 방지하는 논리를 응용 프로그램에 추가해야 합니다.

다시 초기화

구독을 다시 초기화하는 동안 복제 계층에서 복제된 모든 사용자 및 시스템 테이블을 삭제하고 다시 만듭니다. SQL Server 구독을 사용할 때와 마찬가지로 다시 초기화하면 동기화를 시작한 후의 변경 내용이 모두 손실됩니다.

이러한 데이터 손실을 방지하려면 다시 초기화하는 동안 사용자가 데이터를 변경하지 못하도록 방지하는 논리를 응용 프로그램에 추가해야 합니다.

스키마 변경

모든 DDL 작업(스키마 변경)에는 테이블에 대한 단독 액세스 권한이 필요합니다. 다른 프로세스에서 이 테이블을 사용 중인 경우 스키마를 변경할 수 없습니다.

동기화하는 동안 변경

동기화하는 동안 데이터를 변경할 경우 이 변경 내용은 다음에 동기화할 때 보내집니다. 동기화 세션으로 인해 로컬 충돌이 발생할 경우 아티클이 열 수준으로 추적되더라도 이 행은 행 수준으로 확인됩니다.

충돌 감지 및 해결

다중 사용자 환경에서 작업하는 경우 동기화하는 동안 적용한 변경 내용으로 인해 충돌이 발생할 수 있습니다. SQL Server Compact Edition 에서 클라이언트측 충돌을 검색할 수 있지만 해결하지는 않습니다. 대신, 다음에 동기화할 때 해결할 수 있도록 충돌 정보를 게시자에 전달합니다.

대부분의 충돌은 다음에 동기화할 때 게시자에서 해결됩니다. 그러나 참조 무결성(R/I) 충돌이 발생할 경우 게시자는 장치에서 자동 다시 동기화를 요청합니다. 이러한 동작이 발생하면 다시 동기화가 두 번 이상 발생하지 않습니다.

충돌 감지 및 해결에 대한 자세한 내용은 복제 충돌 검색 및 해결 방법을 참조하십시오.

SubscriberConflicts 속성 사용

동기화하는 동안 로컬 데이터베이스를 변경하면 로컬 충돌이 발생할 수 있습니다. 게시자의 행을 구독자에 적용할 수 없는 경우 구독자 충돌로 간주되며 SubscriberConflicts 속성이 설정됩니다. SQL Server 구독자를 사용하면 구독자에서 충돌이 해결됩니다. 그러나 SQL Server Compact Edition 에는 조정자가 없습니다. 그러므로 모든 충돌은 게시자에서 해결해야 합니다. 응용 프로그램을 개발할 때는 각 동기화 후에 SubscriberConflicts 속성을 검사하는 응용 프로그램을 디자인할 수 있습니다. 0이 아닌 값으로 설정할 경우 게시자에서 충돌을 해결할 수 있도록 데이터를 다시 동기화해야 합니다.

참고 항목

개념

데이터 동기화(SQL Server Compact Edition)
동기 데이터 동기화
비동기 데이터의 동기화
복제 충돌 검색 및 해결 방법

도움말 및 정보

SQL Server Compact Edition 지원 정보 보기