web-dev-qa-db-ja.com

テーブルに対して毎日実行される更新/挿入コマンドを介してテーブルへの変更を追跡する

SAP ECCシステム用のOracleデータベースバックエンドがあります。その中に、10億以上のレコードを持つテーブルがあります。このテーブルをSAP BWに抽出します。SAPBWはたまたまMSSQLサーバー上にあります。抽出しようとしているテーブルには、それに加えられた変更を追跡するための変更ポインタまたは列がありません。その量を考えると、私たちは毎日それを殺して満たすことができません。私たちはOracle GoldenGateを見てきましたが、そのようなお金を使いたくありません。他の誰かが以前にこの種の仕事をしたことがありますか?

3
CodeMonkey

これは Oracle Change Data Capture が適切な状況のように聞こえます。このテーブルへの変更をサブスクライブし、SAP BWシステムに変更をプッシュすることによってそれらを処理するコードを記述する必要があります。

Oracle Streamsを使用して、Oracle Transparent Gatewayを使用してOracleからOracle以外のデータベースに 異機種間レプリケーション を実行することもできます。

1
Justin Cave

1つのオプションは、主キーとアクション(UPDATE/INSERT/DELETE)をカスタムテーブルにキャプチャするOracleトリガーを作成し、カスタムテーブルを実際のテーブルに結合する選択した言語で抽出を実行して、主キーによって行を変更しました。次に、カスタムテーブルを切り捨てて、次の実行に前回の実行以降の変更のみが含まれるようにします。

0
Trevor North