2016-12-14 52 views
0

我坐在一個問題。對象合併複製無效

我向複製的數據庫添加了一個新表,並更新了包含此表的視圖。

當複製運行時,由於視圖試圖複製而拋出無效對象錯誤,但表未複製到訂閱服務器。

我更新了文章複製序列,以確保視圖之前複製的表

sp_changemergearticle 

我再次運行快照和表被列爲一篇文章預期。

當我運行復制時,仍然收到無效的對象錯誤。

我不能重新初始化訂閱,因爲數據丟失的風險非常高。

任何幫助將不勝感激。

回答

0

添加一篇文章需要將文章添加到發佈中,爲發佈創建新快照,並同步訂閱以應用新添加的文章的模式和數據。生成新快照後,分發/合併代理將將新添加的文章的模式和數據複製到訂閱服務器。

我強烈建議在一個自制的環境中進行測試,一旦你得到它在一個較低的或自我的環境中工作,將修復到生產。在執行此操作之前進行備份,看看您是否可以在維護時段內執行此操作,並且如果您需要其他備份幫助,則可以選擇插入其他表中。

Source

More information

0

當時表和視圖添加到快照之後用戶?您是否向發佈商添加了相同的表格和視圖?我想看看你在哪裏。這聽起來像是您複製了一個引用訂戶中不存在的表的視圖。如果您已經更新了訂閱者的視圖並且稍後更新了發佈者 - 不同步的文章,則以下步驟將起作用。

  1. 在發佈者處打開視圖定義。
  2. 複製視圖定義。
  3. 導航到訂閱服務器。
  4. 在步驟2中執行從發佈服務器獲取的視圖定義作爲alter語句。
  5. 代理運行的下一次,它應該清除錯誤,因爲視圖再次相同。

聽起來最安全的做法是在發佈者中添加表格和視圖作爲文章,並重新啓動快照,拉/推最新的。

+0

我添加了一些步驟來糾正不同步的文章,我認爲這是導致錯誤,但是,如果這不是確切的問題,那麼讓我知道,我會刪除。 –

0

所以最終工作是手動創建每個用戶中缺少的表。

我剛創建了沒有數據的Schema,複製啓動了,剩下的就完成了。

視圖已經是相同的,因此恢復到發佈者視圖是不可能的。

很奇怪。

謝謝大家的幫助!