首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >出现异常: Microsoft.Synchronization.Data.DbNotProvisionedException的PerformPostRestoreFixup()方法

出现异常: Microsoft.Synchronization.Data.DbNotProvisionedException的PerformPostRestoreFixup()方法
EN

Stack Overflow用户
提问于 2017-02-05 20:38:11
回答 1查看 145关注 0票数 1

下面是我的代码:

代码语言:javascript
复制
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

错误消息:

代码语言:javascript
复制
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 

我的问题是:

如何知道是否存在权限或供应问题?

我在两个类似的系统上运行了这段代码,结果相同。一个系统完全同步,另一个系统在跟踪日志中显示以下警告

代码语言:javascript
复制
System.ArgumentException: SQL Server Change Tracking is not enabled for table 'Users' and stops. 

根据我的检查,更改跟踪已启用。通过PerformPostRestoreFixup()方法,我希望在切换到简单恢复模式并返回到完整模式(我认为可能是同步问题的原因)后恢复第二个系统的数据库。

EN

回答 1

Stack Overflow用户

发布于 2017-02-10 23:08:02

正如错误消息所说,这不是为表启用更改跟踪的问题。应为同步数据的进程添加查看更改跟踪信息的权限。可以在SSMS的表属性中对其进行检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42052147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档