我有一个SQL Server 2008R2 Standard托pipe的生产数据库,通过订阅生产数据库,将其复制到运行同一版本SQL Server的另一台服务器上。 用户数据库用于在数据上运行SQL报告。 删除不会被复制,因此报告数据库与每周清理的生产发布数据库相比相当大。
我打算更换托pipe已发布数据库的服务器,并想知道确保订阅服务器数据库不会丢失任何数据的最佳做法。 这是一个明智的步骤要遵循的步骤:
那么简单吗,还是有些东西我错过了,可以转身咬我? 我要确保的主要事情是用于报告的数据库(订阅的数据库)不会丢失任何数据,并且继续从新数据库接收新的复制数据。
谢谢
您的计划是正确的,除非您需要指定仅支持sp_addsubscription的复制支持 @sync_type ,假定用户已经拥有架构和已发布表的初始数据,并且不会初始化,从而跳过了删除。
如果您正在使用“新build订阅向导”,则可以通过在“ 初始化订阅”页面上select“不初始化”来实现相同的function。

诀窍在于如何同步。 在sp_addarticle存储过程中,@pre_creation_cmd参数的缺省值是在订阅服务器上删除表。 这对你来说是一个问题。 以下是我可能会这样做的:
我还build议您借此机会为您的档案数据实施一个更安全的地方。 如果复制自行中断(它可以并且确实),那么就重新初始化而言,你处于一个棘手的地步。 如果必须这样做,我会创build一个由复制调用的自定义过程(您可以使用@del_cmd参数指定它以将其插入到您的存档表中,然后从您的活动表中删除)。 但是有很多方法可以完成同样的事情。 祝你好运。