問題タブ [oracle-cdc]
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.
oracle - ダウンタイムなしで同期 CDC を使用して Oracle から MySQL へのレプリケーションをプロビジョニングする方法は?
Tungsten Replicatorのドキュメント で概説されている並列抽出方法を使用して、Oracle から MySQL へのレプリケーションをプロビジョニングしようとしています。
- Tungsten が提供する setupCDC.sh スクリプトを使用して、Oracle で CDC テーブルをセットアップします。
- 前のスクリプトで指定された CDC プロセスの開始 SCN を指定して、並列エクストラクタを開始します。
- 並列エクストラクターは、フォームのフラスコバック クエリを使用して既存のすべてのデータを挿入し
AS OF SCN ...
、データの整合性を備えたポイント イン タイム プロビジョニングを実行します。
問題は、CDC が非同期の場合にのみsetupCDC スクリプトが SCN を出力することです。公式フォーラムのスレッドで、これは「スキーマ スナップショット全体に対して 1 つの位置を取得する」ことであることがほのめかされています。
ライセンスの制限により、同期CDCしか使用できません。all_capture
テーブルに記録された SCN を手動で読み取り、プロビジョニングに使用しても安全ですか? データの整合性と最小限のダウンタイムの両方を達成できるオプションは何ですか?
- を。プロビジョニングの進行中は、マスター データベースへの書き込み操作を無効にします。
- 私のデータベースには数百ギガバイトのデータが保持されており、おそらく長いダウンタイムが発生するため、これは望ましくありません。
- b. プロビジョニング中に書き込み操作を許可する: 並列抽出ですべてのテーブルが処理された後、通常のレプリケーションを通じてすべての CDC データを再適用することで、不一致が修正されます。再申請中に発生したエラーは無視する必要があります。
- データの整合性の観点から、これは安全でしょうか?
talend - TalendのOracle CDC
Oracle データベースの Talend で CDC をセットアップしようとしています。ここにリストされている手順に従っています: https://www.talendforge.org/tutorials/tutorial.php?language=english&idTuto=42
ただし、メインの DB 接続で CDC を確立しようとする"Database information must be filled to use the cdc!"
と、Create Subscriber
ボタンが無効になっているというメッセージが表示されます。
私は何を別の方法で行うことができますか?同じデータベースを指す 2 つの接続を作成し、メイン接続でテーブル スキーマも取得しました。
informatica - Informatica : ターゲット テーブルに列を追加しない CDC のようなもの
Oracle に A という名前のソース テーブルがあります。最初にテーブル A をテーブル B にロード (コピー) し、次にテーブル A に対して Insert 、Delete 、Update のように DML を操作します。
それを表 B にどのように反映させるか? ターゲット テーブルに余分な列を作成せずに。行のタイム スタンプは使用できません。
ソースとターゲットの行を比較する必要があります
例: 行がソースで削除された場合、ターゲットで削除する必要があります。行が更新された場合はターゲットで更新し、ソースで使用できない場合はターゲットに挿入します。
助けてください !!
mysql - CDC の欠点を克服する
私の会社では、変更データ キャプチャを利用して、アップストリーム システムとダウンストリーム システム間のインターフェイス ファイルの交換を置き換えたいと考えています。アップストリーム システムは Oracle データベースで実行され、データのスーパーセットを含みますが、ダウンストリーム システムは MySQL データベースで実行され、完全に相互排他的ではないデータのサブセットを含みます。楽しみたいのでCDCを利用することにしました
- フルセットではなくデルタによるデータ転送
- 自動データ同期
- データ転送が中断された場合の自動再送信
ただし、インターフェースファイルと比較すると、CDC には次のような欠点があることがわかりました。
- アーキテクチャの観点からは複雑すぎる
- 両端および中間ネットワークでの高度なセキュリティ制御要求
- 受信者ごとに異なるデータセットが必要なため、複雑なデータ管理
- 単一障害点の作成
- プレーンテキストファイルと比較して、転送されたデータは透過的ではありません
- 同期がリアルタイムの場合、下流システムでのデータの有効時間を制御するのが難しい
- File Transferよりかなり高コスト
上記の欠点をどのように克服できますか?
informix - ファイルまたはDB以外にデータを保存するための他のオプション(リソース)はありますか?
私は CDC (Change Data Capture) を初めて使用します。1 分あたり 1600 万のトランザクションを処理する必要があります。DB には IBM Informix を使用しています。
私の仕事は、現在のトランザクション ID をファイル、DB などのリソースに保存する機能を追加することです。API は、このトランザクション ID を前のトランザクション ID として使用し、次のトランザクション ID から開始します。ただし、ファイルまたは DB への書き込みは非常に重い操作であるため、ファイルまたは DB への保存はオプションではありません。
API の効率を向上させるために、以前のトランザクション ID を保存するための他の方法はありますか?
Javaを使用しています。