我已经将SQL事务复制配置为创建两个订阅服务器和一个发布服务器,问题是在对发布服务器上的SQL "alter“进行任何部署和更改之后,复制日志中会出现几个错误,因此我通过重新建立快照解决了这个问题。
在部署“在发布服务器上运行更新的脚本”期间,有没有人认为我应该这样做?我应该停止应用程序在部署期间不记录任何事务,或者使DB脱机。请给我任何想法。
发布于 2016-07-22 02:29:08
更改过程通常不会被复制,因此不会造成任何问题。更有可能的是,您正在执行DDL操作并更改表,这将破坏复制。
Michael建议您的复制可能不会设置为复制模式更改:
打开发布的属性,转到“订阅选项”部分,并将“复制架构更改”属性更改为true。然后,应用于发布中的项目的所有DDL更改将应用于订阅服务器,而无需重新初始化。
如果这对你有用那就太好了。
根据我的经验,复制会导致许多正常的良性部署失败,因此我更希望删除复制,作为部署的一部分,然后再应用。
对于“更轻”的触摸,在部署结束的特定示例中,您可以将订阅服务器标记为需要快照(使用sp_reinitpullsubscription),然后触发快照代理(使用sp_start_job)。
它在BOL https://msdn.microsoft.com/en-AU/library/ms152466.aspx?f=255&MSPPError=-2147217396中有粗略的记录,但是根据您是在做推送订阅还是执行请求订阅,说明略有不同。
然而,您可能需要更深入地了解导致问题的实际情况,因为这样做会使每个部署都没有什么原因而缓慢进行。
https://dba.stackexchange.com/questions/144618
复制相似问题