現象
次のような状況で問題が発生します。
-
変更テーブル のsp_cdc_cleanup_change_table プロセスを管理するには、次のコマンドを使用します。
-
変更データ キャプチャ (CDC) スキャンと CDC クリーンアップが呼び出されると、 sp_cdc_cleanup_change_table発生します 。
このシナリオでは、重大度 10 (情報メッセージ) を含む次のエラー 22852 が発生します。
DatabaseName データベースのキャプチャ インスタンスの 1 つ以上の低いウォーター マークの変更によって古くされた変更テーブル エントリ<削除>。 CommandName コマンドを実行してコマンドを実行<エラーが> 。 エラーが返されたのは、 ErrorInfo <エラー> 。
アクションとエラーを使用してエラーの原因を特定し、要求を再送信します。
注 これは情報メッセージなので、クリーンアップ プロセスは失敗しません。また、クリーンアップが成功するか失敗したのかを判断する方法はありません。
修正プログラムの詳細
sp_cdc_cleanup_change_table を使用するときにクリーンアップが成功するか失敗するかを判断するために、オプションの出力パラメーター (fCleanupFailed ビット) が sp_cdc_cleanup_change_table 関数に追加されます。 これを使用して、キャプチャ インスタンスのクリーンアップが失敗するかどうかを確認できます。 fCleanupFailed 出力が 0 の場合、すべてのクリーンアップが成功します。 1 の場合、少なくとも 1 つのキャプチャ インスタンスのクリーンアップは失敗します。 例を次に示します。
-- 変数を宣言し、最初に 0 に設定する
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 がソフトウェア 更新プログラムの 説明に使用する用語について説明します。