Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何临时禁用SQL Server复制_Sql_Sql Server - Fatal编程技术网

如何临时禁用SQL Server复制

如何临时禁用SQL Server复制,sql,sql-server,Sql,Sql Server,我有一个SQL Server(分发服务器和发布服务器)2008,它正在使用快照和事务复制进行复制,以复制到几个订阅者。这里有大量关于如何永久禁用复制的信息 我不想永久性地禁用复制,只是为了计划在本周晚些时候发生的网络中断而暂时禁用复制。 我学到了我的教训,当事情变得混乱时,需要完全禁用、删除和重新设置才能使所有内容重新工作,而且有太多的出版物使它成为一个选项,而只是暂时禁用它 任何合理的选择,或任何我忽略的,都将不胜感激 这取决于发行者和发行者之间还是发行者和订阅者之间的网络分割。以下两种方案都

我有一个SQL Server(分发服务器和发布服务器)2008,它正在使用快照和事务复制进行复制,以复制到几个订阅者。这里有大量关于如何永久禁用复制的信息

我不想永久性地禁用复制,只是为了计划在本周晚些时候发生的网络中断而暂时禁用复制。 我学到了我的教训,当事情变得混乱时,需要完全禁用、删除和重新设置才能使所有内容重新工作,而且有太多的出版物使它成为一个选项,而只是暂时禁用它


任何合理的选择,或任何我忽略的,都将不胜感激

这取决于发行者和发行者之间还是发行者和订阅者之间的网络分割。以下两种方案都处理事务性复制

  • 发布服务器和分发服务器-日志读取器代理将无法将记录标记为已传递到分发数据库,因此在发布服务器的事务日志中停留的时间将比正常时间长。这可能会导致日志增长(取决于当前日志文件中的可用空间大小)

  • 分发服务器和订阅服务器—假设网络中断时间短于分发数据库的最小保留期,您应该能够暂停分发作业,并且在网络重新联机后,一切都应该恢复。根据积压的大小,重新初始化一些(或全部!)文章可能更容易


对于快照复制,您不需要做太多的工作,因为只有在创建快照并将其传递给订阅服务器时才有活动。您可以在事件期间禁用这些作业,然后在完成后重新启用它们。

我考虑过的一个选项是禁用在SQL Agent中创建的所有发布作业,但不知道会产生什么后果,以及在再次启用这些作业时是否会重新同步。谢谢SMW,这有助于我做到这一点,但随着更多的研究,我发现除此之外,我可能还需要禁用与快照发布和事务发布相关的SQL代理作业,或者SQL代理将尝试运行这些作业。我们周四见!