次の手順を使用して CDC を有効にしました。
exec sys.sp_cdc_enable_db;
exec sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'table_name',
@role_name = N'CDC_Access',
@supports_net_changes = 1;
System Tablesに CT テーブルが作成されていることがわかります。SQL Server エージェントがオンになっており、cdc.db_name_captureジョブが作成され、実行中であることがわかります。
ただし、table_nameテーブルにデータが取り込まれているにもかかわらず、CT テーブルには何も表示されません。更新中の同じデータベースでCDCが有効になっている他のテーブルがあり、CDCはそれらのデータをキャプチャし、その特定のテーブル用に作成されたCTテーブルに保存しています。
他のテーブルがデータをキャプチャしているのに、この 1 つのテーブルがデータをキャプチャしていないのはなぜですか?
トランザクション ログが大きくなりすぎたことに関係している可能性があることをオンラインで読みましたが、まだ十分なドライブ容量が残っています (最大 2 TB の空き容量)。
この問題をデバッグするにはどうすればよいですか?
よろしくお願いします!:)
編集 1
の出力は次のとおりですexec sys.sp_cdc_help_change_data_capture
。 subscription_eventsは、私が問題を抱えているテーブルです。
編集 2
の出力は次のとおりですexec sys.sp_cdc_help_jobs;
。
編集 3
の出力は次のとおりですselect * from sys.dm_cdc_log_scan_sessions;
。
ここに出力がありますselect * from sys.dm_cdc_errors;
編集 4
実行select serverproperty('productversion')
すると、次のバージョン番号が提供されます: 11.0.3401.0
.