問題タブ [change-data-capture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL サーバーの CDC
データベースの 1 つで CDC 機能を有効にしました。今、私はcdcテーブルに以下のテーブルデータを持っています
今私の問題は、cdc テーブルにクエリを実行し、すべてのメンバーの最新の行 (最新の更新値) をすべて取得する必要があることです。たとえば、クエリは次を返します
sql-server - 変更データ キャプチャを使用した FileStream データの追跡
データベースが必要です
- トランザクション サポートを使用してドキュメントを管理し、
- 行と対応するドキュメントの状態を以前の時点に復元できます。
私の要件のほとんどに完全に適合しているように見えるため、SQL Server FileStream 機能を使用することに傾いています。
データ履歴の場合、SQL Server ソリューションは変更データ キャプチャ (CDC) 機能のようです。
- これは SQL Server 2012 の FileStream と組み合わせて機能しますか? Win32 SqlFileStream クラスを介して行われたドキュメントの変更は追跡されますか? この方法でドキュメントの古い状態を復元できますか?
- そうでない場合、対応する列に格納されているメタデータと共にドキュメントの変更を追跡するための推奨されるソリューションは何ですか? トリガー?
sql - SQL データの変更を追跡したい
のような特定のストアド プロシージャの実行中に発生した変更を追跡したいと考えていますSP_Integration
。
SP_Integration
多くのテーブルで更新します。次のようなスキーマへの統合中の変更を追跡したい:
トリガーを使用すると、外部で発生した変更を追跡しますSP_Integration
。このストアド プロシージャの実行時に値の変化を追跡したいと考えています。
sql-server - 変更データ キャプチャ - _$start_lsn - この値の解釈
CDC テーブルの 1 つを見ると、テーブルに __$start_lsn 値が の 4 つの行があります0x000CB13700041C06001B
。
私の質問はこれです。SQL Server がこの lsn を含む 4 つの行を CDC テーブルに書き込んだとき、この lsn を持つことになる 4 つの行だけを書き込んだのでしょうか? それとも、次のトランザクションに同じ lsn を持つ行がさらに含まれる可能性はありますか?
または、別の言い方をすれば、特定の LSN で CDC テーブルを調べたり、クエリを実行したりするときに、将来、同じ LSN を持つ行がこれ以上表示されないことを確実に知ることができますか?
hadoop - Hadoop での変更データ キャプチャ
Oracle ベースの既存の CDC システムを Hadoop に移行する必要があります。Hadoop に CDC を実装した人はいますか? Hadoop に対する CDC のアプローチを共有してください。ありがとう!
sql-server - CDC は有効になっていますが、cdc.dbo_CT テーブルに値が入力されていません
次の手順を使用して CDC を有効にしました。
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
.