「 合併代理程式 」 可能會在 SQL Server 中的合併複寫同步時失敗

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2733630
徵狀
在 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


查詢結果

Sentgen資料行標記傳送到 「 發行者 」 的 「 訂閱者 」 的變更的最舊的群組。如果傳回多個值,請檢查以確定您正在檢視的正確的發行集的中繼資料的 dbo.sysMergeSubscriptions 資料表的其他資料行。接下來,使用這個查詢會傳回下列的查詢中的值:
選取最上層的 20 * SubscriberDB.dbo.MSmerge_genhistory 從哪裡產生 > = sentgen_value 所產生的順序
查詢的輸出應如下所示:

所產生的查詢結果

當下列所有情況皆成立時,您可能意外發生錯誤:
  • 層代中的資料行的第一列中的值是稍微大於前一個查詢中的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 SQL Server 2008 R2 Service Pack 2 的累積更新套件 3
附註 因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於前一筆 SQL Server 2008 R2 Service Pack 2 的所有安全性修正都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2730301 SQL Server 2008 R2 建置 SQL Server 2008 R2 Service Pack 2 已發行之後所發行的

SQL Server 2012

這個問題的修正程式首次發表累積的更新 4] 中。如需有關如何為 SQL Server 2012年取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2758687 SQL Server 2012年的累積更新套件 4
附註 因為組建是累計的每個新的修正程式版本會包含所有的快速補充程式,並隨附於先前的 SQL Server 2012年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2692828 SQL Server 的 2012年建置 SQL Server 2012年發行之後所發行的

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 知識庫 」 中的文件:
2567616 SQL Server 2008 R2 建置 SQL Server 2008 R2 SP1 發行之後所發行的

警告:本文為自動翻譯

內容

文章識別碼:2733630 - 最後檢閱時間:10/22/2015 20:03:00 - 修訂: 6.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Parallel Data Warehouse, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB2733630 KbMtzh
意見反應