
병합 복제를 사용하여 두 개의 데이터베이스를 동기화하는 한 쌍의 SQL2000 서버가 있습니다. 지난 몇 달 동안 어느 단계에서 데이터베이스 중 하나에 대한 병합 에이전트가 사라졌습니다. 언제 이런 일이 발생했는지 말하기는 어렵습니다. 이 시스템은 실제로 1년에 두 번, 두 달 동안만 사용됩니다.
제가 알 수 있는 한(저는 복제 전문가가 아닙니다) 구독과 게시가 모두 여전히 존재하지만 병합 에이전트가 부족하여 그 중 하나가 더 이상 병합 복제를 수행하지 않습니다. 다른 하나는 병합 복제를 완벽하게 수행하는 것입니다.
스키마는 데이터베이스 간에 여전히 동일하지만 데이터가 변경되었습니다. 구독자 서버에는 게시자 서버보다 최신 데이터가 있습니다.
병합 에이전트를 다시 가져오는 가장 좋은 방법은 무엇입니까? BOL을 살펴보고 웹을 샅샅이 뒤졌는데 이 모든 복제 항목은 혼란스러울 정도로 무섭습니다!
답변1
네, 무섭습니다.
복제가 최소한 2주마다 수행되지 않으면 기본적으로 구독이 만료되어 사라진다는 것을 예전에 기억합니다. 이 일을 한 지 몇 년이 지났기 때문에 정말 흐릿합니다. 우리의 경우 최종 사용자가 2주 동안 휴가를 가면 워크스테이션 구독이 만료됩니다(초고속 인터넷 시대 이전에는 현장 장치에 대해 병합 복제를 사용했습니다).
만료되기 6개월 전으로 설정을 변경했습니다.
그게 당신의 문제인지는 모르겠지만, 복제 때문에 그 프로젝트에서 밤늦게까지 머리를 긁적이며 잠을 잘 때 악몽을 꾸었습니다.
편집: 방금 기억나는 또 다른 내용이 있습니다. 복제는 SQL 에이전트 계정이 실행 중인 권한을 사용하여 실행됩니다. 따라서 SQL 에이전트 서비스가 사용하는 계정에 문제가 있으면 복제에 부정적인 영향을 미칩니다.
답변2
나도 복제 전문가는 아니지만 병합 복제를 다시 실행해야 할 때 SQL 데이터 비교 도구를 사용하여 게시자가 최신 데이터를 가지고 있는지 확인하고 모든 것을 다시 만듭니다. 그것이 여러분에게 선택 사항인지는 모르겠지만, 우리 데이터베이스는 꽤 작고 지리적으로 멀지 않습니다.
우리가 사용하는 도구는 Apex SQL Data Diff입니다. 그래도 거기에는 다른 옵션도 많이 있을 거라고 확신해요.