Cod*_*ked 3 sql-server sql-server-2008-r2 transactional-replication
假设我有一篇包含一篇文章的事务性出版物。有一个发布者 (PUB1) 和两个订阅者(SUB1 和 SUB2),并使用了一个单独的分发者 (DIST1) 框。我想停止复制到一个订阅者 (SUB1),而另一个订阅者继续处理命令 (SUB2)。此外,我希望能够开始复制备份到 SUB1 并让它从停止的地方开始。
基于此MSDN 页面,我将拥有快照、日志读取器和分发代理。我知道我只能停止 SUB1 的分发代理,而 SUB2 将继续获取/处理复制命令。
不清楚的是,发往 SUB1 的命令会发生什么。从我的测试来看,这些命令似乎在我启动分发代理时被应用。我担心他们可能会在一段时间后从 DIST1 中删除,即使所有订阅者还没有收到命令(还)。
那么命令会在 DIST1 上建立,直到 SUB1 和 SUB2 都是最新的并且正在运行,还是有可能丢失命令?此外,是否存在我不能简单地启动分发代理备份的点(即 SQL Server 是否在某个点决定它必须重新初始化文章以便再次开始同步)?
是的,事务复制数据将在等待分发重新开始时建立。当然,如果不进行跟踪,长时间延迟的事务复制数据集可能会填满您可用的日志空间,从而导致您出现问题。
复制受制于可用资源,包括日志空间,因为复制数据是从事务日志中读取的。
值得一提的是,我们曾经将复制打开几天,直到网络问题得到解决。(当时有充足的日志空间。)
如果复制过程失败(出于任何原因)会导致数据丢失,那么您需要重做这些步骤来建立复制环境。
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |