KB2931001 - 修正:散發代理程式在 SQL Server 2012 或 SQL Server 2014 中使用備份初始化的訂閱者上跳過套用sp_MSins_、sp_MSupd_sp_MSdel_預存程序

套用到
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

當您在 Microsoft SQL Server 2012 或 SQL Server 2014 中設定異動複寫並從備份初始化異動訂閱時。 在初始同步處理期間,散發代理程式失敗,並收到下列錯誤:

注意

連線到訂閱者
正在初始化
沒有可用的複寫交易。
42000 找不到預存程序 'sp_MSins_'。 2812
42000 找不到預存程序 'sp_MSins_'。 2812

原因

此問題是由記錄讀取器代理程式與散發代理程式初始執行之間的時間差異所造成。 如果發行者發生大量異動變更,記錄讀取器代理程式產生自訂預存程序指令碼並將其新增至發佈資料庫中的MSRepl_commands時會發生延遲。 如果散發代理程式啟動,且在新增這些命令之前已往返到散發資料庫,它會將交易時間戳記向前移動,並報告「沒有可使用的複寫交易」。 稍後散發代理程式的同步處理嘗試無法偵測到自訂預存程序建立命令,而且會失敗,並出現「徵狀」一節中提及的錯誤。

解決方式

此問題已先在下列 SQL Server 累積更新中修正。

SQL Server 2014 累積更新 1 /zh-tw/help/2931693

SQL Server 2012 SP1 的累積更新 9 /en-us/help/2931078

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。