2009-11-25 86 views
4

我试图确定是否有更好的方式来处理复制,而不是我们当前正在做的事情。SQL Server 2008复制(避免重新初始化)

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

  1. 有没有办法从表中添加现有栏复制 没有重新初始化整个 出版
  2. 您只需选择一篇特定的文章重新初始化,而不是所有文章的 ?

(我是一个有点新的复制,试着跟上进度,所以我道歉,如果我的术语是没有意义的)

现在,我们有大约30出版物所以如果有必要重新初始化的话,影响很小......因为我们的一些表格非常庞大。我们宁愿只有几个出版物。

任何想法将不胜感激。

更新

当我们尝试将列添加到我们收到消息的文章:

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

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

回答

5

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

1)是的。见Making Schema Changes on Publication Databases

  • 要将新列添加到表和 包括列在现有 公布,执行ALTER TABLE ADD。默认情况下, 列将被复制到所有 订户。该列必须允许 NULL值或包含默认的 约束。
  • 为了在一个 现有出版物的现有列,使用 sp_articlecolumn(的Transact-SQL), sp_mergearticlecolumn(的Transact-SQL),或 出版物属性 - 对话框。

2)它取决于复制类型。见Reinitializing a Subscription

重新初始化订阅涉及 将一个或多个 文章,一个或多个用户的一个新的快照: 事务和快照复制 允许个别条款是 重新初始化;合并复制 要求所有文章为 重新初始化

+0

根据此http://msdn.microsoft.com/en-us/library/ms152745.aspx sp_articlecolumn和sp_mergearticlecolumn都需要新快照并重新初始化预订。 – 2009-11-27 15:54:38

+0

我们正在使用事务 – 2009-11-30 18:16:46

+0

在链接中,您提供了关于sp_articlecolumn和sp_mergearticlecolumn的注释,指的是修改过滤器,而不是模式更改。根据http://msdn.microsoft.com/en-us/library/ms151870.aspx,架构更改会在无需重新初始化时增量传播。你应该测试和验证。 – 2009-11-30 18:25:45