徵兆
請試想下列案例:
-
您可以使用 sp_cdc_cleanup_change_table管理 變更資料表清理程式。
-
當系統被調用時, (CDC 中的變更資料) 與DC 清理之間會發生sp_cdc_cleanup_change_table問題。
在此案例,會發生下列錯誤 22852,嚴重性為 10 (資訊) 訊息:
無法刪除變更資料表專案,因為一或多個低水標記的變更而過時,以取得資料庫實例<資料庫名稱>。 執行 CommandName 命令<失敗> 。 錯誤<ErrorInfo> 。
使用動作和錯誤來判斷失敗的原因,然後重新提交要求。
附註因為這是資訊訊息,因此清理程式不會失敗,而且無法判斷清理是否成功。
修正程式詳細資料
若要判斷當您使用 sp_cdc_cleanup_change_table 時清理是否成功, (fCleanupFailed 位) 會新sp_cdc_cleanup_change_table函數。 這可以用來檢查任何捕獲實例的清理是否失敗。 如果 fCleanupFailed 輸出 為 0,則所有清理都成功。 如果為 1,至少一個捕獲實例的清理失敗。 以下是範例:
-- 先宣告變數並設定為零
select @cleanup_failed_bit = 0
--Execute cleanup and obtain output bit
EXEC @retcode =sys.sp_cdc_cleanup_change_table
@capture_instance = '<CaptureInstance>',
@low_water_mark = @LSN,
@threshold = 1 ,
@fCleanupFailed = @cleanup_failed_bit output
--Leverage @cleanup_failed_bit output to check the status.
解決方案
此問題已修正下列累積更新SQL Server:
每個新的累積更新SQL Server包含上一個建立中所有的修復程式和安全性修正程式。 我們建議您針對您的版本安裝最新SQL Server:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考資料
瞭解 Microsoft 用來 描述軟體更新的術語。