0

我試圖在互聯網上找到它,但找不到任何關於它的內容。有幾種方法可以跳過分發代理中的錯誤,但是在應用快照時跳過錯誤沒有關係。MS SQL事務複製 - 在訂閱者處應用快照時跳過錯誤

我的問題:我有一個多發佈單個用戶的設置。設置複製時,第一個發佈服務器的快照已成功發送給訂閱服務器。連續發佈者的快照已成功生成,但在將其應用於訂閱者時失敗。失敗的原因是主鍵違規。在用戶上應用快照時,是否有辦法跳過錯誤?

環境:

  • 出版商:微軟的SQL Server 2008 R2(SP2) - (X64)
  • 分銷商:微軟的SQL Server 2014(SP2)(KB3171021) - (X64)
  • 用戶: Microsoft SQL Server 2008 R2(SP3-OD)(KB3144114) - (X64)

我嘗試過識別導致此問題的表和記錄,但有超過100個這樣的表,每個表有數百個記錄。

由於複製是客戶的要求,我沒有在架構太多的控制,並在它的數據。

+0

如果您在應用快照時遇到PK錯誤,您不應該跳過它。你應該理解爲什麼會發生並解決它。 –

回答

1

這聽起來就像在你設置的東西是不正確,這是導致來自不同出版商的多個表要插入行到同一個用戶表,因此重複鍵的記錄。

如果不同的發佈者都有相同的同一張表的副本,則只希望從其中一個發佈它。

如果不同的發佈者都有不同副本的同一張表,你希望他們每個都有自己的訂閱表。

否則到頭來你會在你的用戶錯過了很多行(因爲不同的出版商都使用相同的密鑰爲實際上是不同的行)或者打怪異的複製錯誤。只是跳過錯誤會導致錯誤的數據 - 我猜這也是客戶的要求之一。每發佈

  • 一個用戶數據庫
  • 決不授予用戶寫訪問這些數據庫
  • 格蘭特通過讀取訪問:我在過去使用簡化的複製地形和管理

    一個選項另一個使用同義詞或視圖的數據庫

這可以使管理更簡單。如果您需要重新初始化單個數據庫,則可以選擇從備份中恢復,並且通常比訂閱者共享相同數據庫時的靈活性更高。

爲了保持完整性,我可能應該指出您從Skipping Errors in Transactional Replication的Books Online條目。但要清楚,我認爲這將是一個錯誤,因爲你最終會得到不正確的數據 - 這可能不是任何人想要的。

相關問題