표준 트랜잭션 복제로 업데이트 된 두 개의 마스터 데이터베이스와 두 개의 읽기 전용 복사본이 있습니다. 읽기 전용 데이터베이스의 일부 엔티티를 매핑하는 데 필요합니다. A 데이터베이스에는 주문이 있고 B 데이터베이스에는 라인이 들어 있습니다.SQL Server 데이터베이스의 복제 프로세스를 두 개 (또는 n 개) 동기화하는 방법은 무엇입니까?
Replication http://i46.tinypic.com/1tacsx.png
문제는 하나의 데이터베이스에 복제가 두 번째 데이터베이스의 복제 뒤쳐 수 있으며, 매핑 R-데이터베이스의 순간에 일치하지 않는 데이터를해야합니다. 예를 들어.
우리는 19:00와 19:03에 줄이있는 2 개의 주문을 저장했습니다. 매핑 프로세스는 19:05에서 시작되었지만 매핑 순간까지 시작됨 데이터베이스 복제는 19:03까지 모든 변경 사항을 처리했지만 B 데이터베이스 복제 처리는 19:00까지만 변경됩니다. 매핑이 끝나면 19시 3 분부터 주문하고 19시 방향으로 주문한 주문 엔티티를 갖게됩니다. 문제는 보장됩니다 :)
두 데이터베이스 모두 임시 모델을 가지고 있으므로 모든 시간 조각에 대해 데이터를 가져올 수 있지만 문제는 최신 복제 시간을 확인하는 것입니다.
질문 : 위에서 설명한 상황을 피하기 위해 여러 데이터베이스의 복제 프로세스를 동기화하는 방법은 무엇입니까? 또는 다른 말로하면, 각 데이터베이스의 마지막 복제 시간을 비교하는 방법은 무엇입니까?
UPD :
내가 동기화 볼 수있는 유일한 방법은 지속적으로 각 데이터베이스에 서비스 테이블에 타임 스탬프를 작성하고 복제 된 서버에서 이러한 타임 스탬프를 확인하는 것입니다. 수용 가능한 해결책인가?
귀하의 의견을 아래에 적어 두 DB에 신선한 datetime을 정기적으로 삽입하고 공유 DB에 복제하고 그 날짜 이전에 데이터를 가져 오는 것만으로도 갈 것입니다. 당신이 당신의 질문에 답한 것처럼 보입니다. –