2009-11-25 57 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