SQL Server 2008复制(避免重新初始化)

Chr*_*eis 4 sql-server replication sql-server-2008

我正在尝试确定是否有更好的方法来处理复制,而不是我们目前正在做的事情.

我们基本上试图确定两件事:

  1. 有没有办法将表中的现有列添加到复制,而无需重新初始化整个发布
  2. 您是否可以选择要重新初始化的特定文章而不是出版物中的所有文章?

(我对复制有点新......试图加快速度,所以如果我的术语没有意义,我会道歉)

现在我们有大约30种出版物,所以如果有任何必须重新初始化,那么影响微乎其微......因为我们的几张表非常庞大.我们宁愿只有几个出版物.

任何想法将不胜感激.

更新

当我们尝试向文章添加列时,我们会收到以下消息:

您已更改了一个或多个要求重新初始化所有订阅的属性.保存这些更改标记了支持自动重新初始化的每个订阅,以便在下次运行分发代理时从快照重新初始化.您必须运行快照代理才能生成快照.

我们希望避免重新初始化所有订阅..我们正在使用事务复制...我们再次希望将现有列添加到现有发布,而无需重新初始化所有订阅.

Rem*_*anu 5

什么样的复制?快照,合并,交易,点对点?

1)是的.请参阅在发布数据库上进行架构更改:

  • 要向表中添加新列并在现有发布中包含该列,请执行ALTER TABLE ADD.默认情况下,该列将复制到所有订阅服务器.该列必须允许NULL值或包含默认约束.
  • 若要在现有发布中包含现有列,请使用 sp_articlecolumn(Transact-SQL), sp_mergearticlecolumn(Transact-SQL)或"发布属性"对话框.

2)这取决于复制类型.请参阅重新初始化订阅:

重新初始化订阅涉及将一个或多个文章的新快照应用于一个或多个订阅者: 事务和快照复制允许重新初始化单个文章; 合并复制需要重新初始化所有文章.