SQL 2005 事务复制:快照处理期间的行为?

Posted

技术标签:

【中文标题】SQL 2005 事务复制:快照处理期间的行为?【英文标题】:SQL 2005 Transactional Replication: Behavior during snapshot processing? 【发布时间】:2009-02-02 17:43:02 【问题描述】:

所以,我的 SQL (2005) Transactional Replication 通常适用于单个发布者和单个(只读)订阅者。数据更改和更新完美流畅,大约 5 秒延迟,这很好。

我花了几天时间试图解决的一个烦人的问题(并到处搜索答案)是 new sprocs/tables/etc。不要传播给只读订阅者,即使我已将它们作为“文章”添加到“出版物”中。该发布已将“传输模式更改”设置为 ON,并且将存储过程设置为传输其定义。但是,出于某种原因,他们没有。

我的“快照代理”进程设置为未计划。 (换句话说,它只发生一次,当我手动启动它时。)我应该把它放在一个时间表上以启用新的或修改的表和存储过程的传输吗?

我认为仅将对象作为文章添加到出版物中就可以做到这一点,但除非我做快照,否则它仍然不会发送它。连接这些的 WAN 是完全快速和可靠的,所以这不是问题,并且表数据更新传输相对快速且完美。

虽然我可以按计划安排我的快照代理,但这对主发布数据库或只读副本的用户是否有任何实时生产影响? (我的网站目前每月有 4 多万独立用户,所以我希望将干扰降到最低……)谢谢!

【问题讨论】:

【参考方案1】:

事务复制仅从源(发布)数据库的事务日志中分发(然后发布)DML(数据操作语言)语句。

新表和存储过程不会复制到订阅者。在此特定上下文中的模式更改,尽管我不得不承认在某些联机丛书文档中有点不清楚,但请参阅现有模式,即,如果您要将列添加到现有数据库,则此更改将传播到订阅者。

为了澄清,这里有一篇 Microsoft 文章,其中详细介绍了您可以进行的架构更改。

[http://msdn.microsoft.com/en-us/library/ms151870(SQL.90).aspx][1]

我希望这会有所帮助。复制是一个很大的主题领域,所以如果我能提供进一步的帮助,请告诉我。

哦,是的,您是对的,如果您将新文章添加到您的出版物中,您将需要创建一个更新的快照。

干杯,

【讨论】:

以上是关于SQL 2005 事务复制:快照处理期间的行为?的主要内容,如果未能解决你的问题,请参考以下文章

在Sql2000 sql2005 sql2008 下已能实现事务复制的强制订阅,但请求订阅始终不能实现总有下列错误提示

使用快照隔离防止 SQL 视图被冗长的删除/插入事务阻塞

SQL Server 2005 事务复制性能

如何处理SQL Server事务复制中的大事务操作

SQL Server 2005 事务复制无法发布包含索引创建的存储过程

SQL Server提高事务复制效率优化订阅初始化优化