目次

Search

  1. はじめに
  2. 一括取り込みデータベース

一括取り込みデータベース

一括取り込みデータベース

CDCのOracleログアクセス方法

CDCのOracleログアクセス方法

データベース取り込み増分ロードジョブ、および初期ロードジョブと増分ロードジョブの組み合わせは、環境と要件に応じて、CDC処理のために別の方法でOracle REDOログにアクセスできます。

直接ログアクセス

データベース取り込みジョブは、オンプレミスのソースシステム上の物理Oracle REDOログに直接アクセスして、変更データを読み取ることができます。
ログをソリッドステートディスク(SSD)に保存すると、この方法で最高のパフォーマンスを実現できます。
次の図は、データフローを示しています。
  1. Oracleデータベースが、変更レコードをディスク上のデータベースログファイルに書き込みます。
  2. 一括取り込みデータベースCDCリーダーが、物理ログファイルを読み取り、CDCの対象となるソーステーブルのログファイルから変更レコードを抽出します。
  3. 一括取り込みデータベースCDCライターが変更レコードを読み取ります。
  4. CDCライターが、変更レコードをターゲットに適用します。

NFSマウントされたログ

データベース取り込みジョブは、ネットワークファイル共有(NFS)マウント、またはネットワーク接続ストレージ(NAS)やクラスタ化されたストレージなど別の方法を使用して、共有ディスクからOracleデータベースログにアクセスできます。
次の図は、データフローを示しています。
  1. Oracleデータベースが、変更レコードをデータベースログファイルに書き込みます。ログファイルが共有ディスクに書き込まれます。
    共有ディスクは、ファイルをデータベースとSecure Agentホストの両方に対してローカルとして見える任意のシステムに配置できます。この共有は、上記のようにNFSを使用するか、ネットワーク接続ストレージ(NAS)またはクラスタ化されたストレージを使用して実現できます。
  2. 一括取り込みデータベースCDCリーダーが、ネットワークを介してNFSサーバーからログファイルを読み取り、CDCの対象となるソーステーブルの変更レコードを抽出します。
  3. 一括取り込みデータベースCDCライターが変更レコードを読み取ります。
  4. CDCライターが、変更レコードをターゲットに適用します。

ASM管理によるログ

データベース取り込みジョブは、Oracle Automatic Storage Management(ASM)システムに格納されているOracle REDOログにアクセスできます。ASM管理によるREDOログから変更データを読み取るには、ASMユーザーが、ASMインスタンスに対するSYSASMまたはSYSDBA権限を持っている必要があります。
Oracle Database Ingestion接続を設定するときは、名前に「ASM」を含むプロパティを入力します。
また、Informaticaでは、Oracle ASMのREDOログファイルからデータを読み取る場合、ローカルのsqlnet.oraファイルのsqlnet.recv_timeoutパラメータを5分未満に設定することをお勧めします。このパラメータは、クエリがタイムアウトになるまでにOracleクライアントがASMからの応答を待機する時間を指定します。ネットワークの中断やその他の要因により、Oracle接続が応答しなくなることがあります。この値を設定すると、リーダーがそのような状況に適時応答してリカバリできるようになります。
次の図は、データフローを示しています。
  1. Oracleデータベースが、変更レコードをASM管理によるデータベースログファイルに書き込みます。
  2. 一括取り込みデータベースCDCリーダーが、ASM管理によるログファイルを読み取り、CDCの対象となるソーステーブルの変更レコードを抽出します。
  3. 一括取り込みデータベースCDCライターが変更レコードを読み取ります。
  4. CDCライターが、変更レコードをターゲットに適用します。

ステージングディレクトリを使用したASM管理によるログ

データベース取り込みジョブは、ASM環境のステージングディレクトリからASM管理によるREDOログにアクセスできます。ASMのみを使用する場合と比較して、この方法ではログファイルへのアクセスが高速になり、ASMシステムのI/Oが低減されます。ASM管理によるログから変更データを読み取るには、ASMユーザーが、ASMインスタンスに対するSYSASMまたはSYSDBA権限を持っている必要があります。
次の図は、データフローを示しています。
  1. Oracleデータベースが、変更レコードをASM管理によるログファイルに書き込みます。
  2. ASMが、ログをステージングディレクトリにコピーします。
    ステージングディレクトリは、NFSマウントなどの共有ディスク上にある必要があります。そうすることにより、ASMはそこにデータを書き込み、データベース取り込みジョブはそこからデータを読み取ることができます。
  3. 一括取り込みデータベースCDCリーダーが、ステージングディレクトリにあるログファイルを読み取り、CDCの対象となるソーステーブルの変更レコードを抽出します。
  4. 一括取り込みデータベースCDCライターが変更レコードを読み取ります。
  5. CDCライターが、変更レコードをターゲットに適用します。

ディレクトリオブジェクトを使用したOracleサーバーファイルシステムのログへのBFILEアクセス

オンプレミスのOracleソースシステムでは、BFILEロケータを備えたOracleディレクトリオブジェクトを使用して、ローカルOracleサーバーファイルシステムからオンラインREDOログとアーカイブREDOログを読み取るように、一括取り込みデータベースを設定できます。Oracle REDOログファイルの場所を指すARCHIVELOG_DIRおよびONLINELOG_DIRという名前のOracleディレクトリオブジェクトを作成する必要があります。BFILEアクセスの設定については、OracleファイルシステムのOracle REDOログへのBFILEアクセスの設定を参照してください。
次の図は、データフローを示しています。
  1. Oracleデータベースが、ローカルOracleサーバーファイルシステムのREDOログファイルに変更レコードを書き込みます。データベース取り込みタスクがログファイルを読み取る必要があるときに、Oracleに接続し、ARCHIVELOG_DIRまたはONLINELOG_DIRディレクトリオブジェクトを参照してログにアクセスするためのselect要求を発行します。
  2. 一括取り込みデータベースCDCリーダーがログファイルを読み取り、CDCの対象となるソーステーブルの変更レコードを抽出します。
  3. 一括取り込みデータベースCDCライターが変更レコードを読み取ります。
  4. CDCライターが、変更レコードをターゲットに適用します。