1

다음은 내 코드입니다 :PerformPostRestoreFixup() 메소드가 예외 제공 : Microsoft.Synchronization.Data.DbNotProvisionedException를

SqlConnection.ClearPool(serverConn); 
serverConn = new SqlConnection(Utility.ConnStr_SqlSync_Server); 
SqlSyncStoreRestore databaseRestore = new SqlSyncStoreRestore(serverConn); 
databaseRestore.CommandTimeout = 1000; //Database is about 300 Gb 
databaseRestore.PerformPostRestoreFixup(); //line #31 

오류 메시지 :

Unhandled Exception: Microsoft.Synchronization.Data.DbNotProvisionedException: The current operation could not be completed because the database is not provisioned for sync or you not have permissions to the sync configuration tables. 
    at Microsoft.Synchronization.Data.SqlServer.SqlManagementUtils.VerifyRuntimeAndSchemaVersionsMatch(SqlConnection connection, SqlTransaction trans, String objectPrefix, String objectSchema, Boolean throwWhenNotProvisioned) 
    at Microsoft.Synchronization.Data.SqlServer.SqlSyncStoreRestore.PerformPostRestoreFixup() 
    at FixSyncEnabledDbAfterBackup.Program.Main(String[] args) ..\Visual Studio 2010\Projects\FixSyncEnabledDbAfterBackup\FixSyncEnabledDbAfterBackup\Program.cs:line 31 

그리고 내 질문 :

은 어떻게 할 권한 또는 제공 문제가 있는지 확인하십시오.

이 코드는 동일한 결과를내는 두 개의 유사한 시스템에서 실행했습니다. 하나의 시스템 동기화는 완벽하게 다른 내가 확인 것처럼

System.ArgumentException: SQL Server Change Tracking is not enabled for table 'Users' and stops. 

변경 내용 추적이 활성화 된 추적 로그에 다음과 같은 경고를 제공합니다. PerformPostRestoreFixup() 메소드를 사용하여 간단한 복구 모델로 전환 한 후 전체 모델 (예상했던 동기화 문제의 원인)으로 돌아간 후 두 번째 시스템의 데이터베이스를 복구 할 수 있기를 바랍니다.

답변

0

오류 메시지에 표시된대로 테이블에 대한 변경 내용 추적을 사용할 수있는 문제가 아닙니다. 데이터를 동기화하는 프로세스에 대한 변경 내용 추적 정보보기 권한이 추가되어야합니다. SSMS의 테이블 속성에서 확인할 수 있습니다.