所以,我有SQL(2005)事务复制通常与单个发布者和单个(只读)订阅者一起工作。数据更改和更新流畅,大约5秒延迟,这很好。
我的一个棘手的问题,我花了几天时间试图解决(以及谷歌到处寻找答案)是 new sprocs / tables / etc.不要传播给只读订阅者,即使我已将它们作为“文章”添加到“发布”中。该出版物将“传输模式更改”设置为ON,并设置存储过程以传输其定义。但是,出于某种原因,他们没有。
我的“快照代理”流程设置为NOT SCHEDULED。 (换句话说,当我手动启动它时,它只发生一次。)我是否应该按照计划将其设置为启用新的或修改的表和sprocs的传输?
我认为将对象作为文章添加到出版物中的行为只会这样做,但除非我做快照,否则它仍然不会发送它。连接它们的WAN完全快速可靠,因此不是问题,表数据更新传输速度相对较快且完美无缺。
虽然我可以按照计划安排快照代理,但这对主要发布数据库或只读副本的用户是否有实时生产影响? (我的网站目前每月有超过400万的独立用户,所以我希望尽可能减少干扰......)谢谢!
答案 0 :(得分:1)
事务复制仅从源(发布)数据库的事务日志中分发(然后随后发布)DML(数据操作语言)语句。
新表和存储过程不会复制到订阅者。虽然我不得不承认在某些联机丛书文档中有一点不清楚,但是在某些联机丛书文档中有一些模糊不清,请参考现有模式,即如果您要添加到现有数据库的列,则此更改将传播到订户。
这里有一篇Microsoft文章,详细说明了您可以进行的架构更改。
[http://msdn.microsoft.com/en-us/library/ms151870(SQL.90).aspx][1]
我希望这会有所帮助。复制是一个很大的主题领域,所以如果我能得到进一步的帮助,请告诉我。
哦,是的,你是对的,如果你在你的出版物中添加新文章,你需要创建一个更新的快照。
干杯,