使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

徵狀

在 Microsoft SQL Server 2008年中的合併式複寫的同步處理和較新版本的 SQL Server,「 合併代理程式 」 可能會失敗。此外,您會收到下列錯誤訊息:

合併代理程式無法偵測該的保留性中繼資料清除作業已經不刪除中繼資料變更的 「 訂閱者 」 尚未傳送到 「 發行者 」 之後。您必須重新初始化訂閱 (不使用上載)。(來源: MSSQL_REPL,錯誤編號: MSSQL_REPL 2147199401)取得說明: http://help/MSSQL_REPL-2147199401

原因很多,可能會發生這個問題。其中包括在某些情況下預期的原因很多。若要判斷是否有意外地遇到這個錯誤,請檢查 < 原因=""> 一節所述的中繼資料詳細資料。

原因

這個問題的原因,請參閱下列的系統資料表,「 訂閱者 」:

  • dbo.sysMergeSubscriptions

  • dbo.MsMerge_Genhistory

請確定 「 合併代理程式 」 不會再進行同步處理。然後,執行下列查詢,並檢查結果:

選取從 SubscriberDB.dbo.sysMergeSubscriptions 的 sentgen,pubid = subid 和 sentgen 不是 null Query results Sentgen資料行標記傳送到 「 發行者 」 的 「 訂閱者 」 的變更的最舊的群組。如果傳回多個值,請檢查以確定您正在檢視的正確的發行集的中繼資料的 dbo.sysMergeSubscriptions 資料表的其他資料行。接下來,使用這個查詢會傳回下列的查詢中的值:

選取最上層的 20 * SubscriberDB.dbo.MSmerge_genhistory 從哪裡產生 > = sentgen_value順序中的世代所查詢的輸出應該類似下面的: Query result by generation 您可能會遇到錯誤意外當下列所有情況皆成立時:

  • 層代中的資料行的第一列中的值是稍微大於前一個查詢中的sentgen值。

  • Genstatus資料行中的值為4

  • Changecount資料行中的值為0

附註第一列的coldate 」 資料行的值也是通常比其他表格列中的該資料行的值更舊的。

解決方案

若要解決這個問題,重新初始化 「 訂閱者 」 所產生的錯誤。在某些情況下,您可能可以解決這個問題,而不需完整的重新初始化。請連絡 Microsoft 客戶支援服務 」,有關可能的解決方案。若要避免這個問題的未來週期性事件,將套用下列修正程式中,視您的 SQL Server 版本而定。

累積更新資訊

SQL Server 2008

在 SQL Server 2008年中的這個問題沒有修正程式。

SQL Server 2008 R2 Service Pack 2

這個問題的修正程式首次發表累積的更新 3] 中。如需有關如何取得此累積更新套件,SQL Server 2008 R2 Service Pack 2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

2754552累計更新套件 3,SQL Server 2008 R2 Service Pack 2附註因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於前一筆 SQL Server 2008 R2 Service Pack 2 的所有安全性修正都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

SQL Server 2008 R2 建置 SQL Server 2008 R2 Service Pack 2 已發行之後所發行的2730301

SQL Server 2012

這個問題的修正程式首次發表累積的更新 4] 中。如需有關如何為 SQL Server 2012年取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

2758687累計的 SQL Server 2012年更新封裝 4附註因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於先前的 SQL Server 2012年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

SQL Server 2012年建置 SQL Server 2012年發行之後所發行的2692828

SQL Server 2008 R2 Service Pack 1

這個問題的修正程式首次發表中累積的更新 8。如需有關如何取得此累積更新套件,SQL Server 2008 R2 Service Pack 1 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

2723743累計 SQL Server 2008 R2 sp1 更新封裝 8附註因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於前一筆 SQL Server 2008 R2 Service Pack 1 所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

SQL Server 2008 R2 建置 SQL Server 2008 R2 SP1 發行之後所發行的2567616

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×