希望一些 SQL 复制天才可以帮助解决这个问题。
我们有一些手持设备在我们的 SQL 2008 R2 数据库上使用合并复制来保持本地数据库同步。
这在大多数情况下都有效,但客户端正在请求一份报告,该报告显示同步进行时的状态。
现在我正在查看合并期间的 msmerge_history 和 msmerge_session 表,我注意到它们在设备本身完成之前很久就声明完成了。
因此,客户端看到同步已成功,但由于某种原因,它在 5 分钟后失败。
如何查看客户端何时完成合并?
希望一些 SQL 复制天才可以帮助解决这个问题。
我们有一些手持设备在我们的 SQL 2008 R2 数据库上使用合并复制来保持本地数据库同步。
这在大多数情况下都有效,但客户端正在请求一份报告,该报告显示同步进行时的状态。
现在我正在查看合并期间的 msmerge_history 和 msmerge_session 表,我注意到它们在设备本身完成之前很久就声明完成了。
因此,客户端看到同步已成功,但由于某种原因,它在 5 分钟后失败。
如何查看客户端何时完成合并?
@Gavin Mannion - 尝试使用sp_replmonitorhelpmergesession。请记住,您还需要在监视时检查结果集中的Status、ErrorMessages和ErrorID列值,以及PercentageDone/Duration。
这并不完全是一个答案,但 Microsoft 已向我们确认,我们无法从服务器实时监控订阅者进度。它只能从订阅者那里监控。
所以我们将不得不改变我们的订阅者的工作方式来通知服务器它的进度。
这是代理配置不好的问题,因为他需要与服务器一起自动启动。最常见的情况是您在创建报告时看到警告状态。
所以需要重新配置代理:
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'xp_cmdshell',1
reconfigure with override
go
sp_configure 'Agent XPs',1
reconfigure with override
go
然后检查是否正常:
net start sqlserveragent
或从管理文件夹“启动”代理。