目次

Search

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

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

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

OracleファイルシステムのOracle REDOログへのBFILEアクセスの設定

OracleファイルシステムのOracle REDOログへのBFILEアクセスの設定

REDOログをローカルのOracleサーバーファイルシステムに保存し、BFILEでOracleディレクトリオブジェクトを使用してログにアクセスする場合は、次の設定タスクを実行します。
BFILEアクセスに固有ではない、次の通常のOracleソース準備タスクを完了します。
  • 一括取り込みデータベース
    でOracle Call Interface(OCI)を使用してOracleソースデータベースと通信するためにSecure Agentが実行されるLinuxまたはWindowsシステムで、ORACLE_HOME環境変数を定義します。
  • 一括取り込みデータベース
    ユーザーに、データベース取り込み増分ロード処理に必要なOracle権限があることを確認してください。詳細については、Oracle特権を参照してください。
  • OracleデータベースのARCHIVELOGモードを有効にします。
  • アーカイブログの格納先を定義します。
    BFILEアクセスの場合は、特定のアーカイブログの格納先ディレクトリを使用します。Oracle USE_DB_RECOVERY_FILE_DESTキーワードを使用して、アーカイブログを日付別に高速リカバリ領域(FRA)に保存しないでください。
  • ソースデータベースでOracleの最小限のグローバルサプリメンタルロギングを有効にします。
  • Oracleソーステーブルにプライマリキーがある場合は、すべてのプライマリキーカラムに対してサプリメンタルロギングが有効になっていることを確認してください。プライマリキーのないソーステーブルの場合、変更データがキャプチャされるすべてのカラムでサプリメンタルロギングが有効になっていることを確認してください。
    データベース取り込みタスクを作成するときに、選択したソーステーブルのすべてのカラムまたはプライマリキーカラムのみのサプリメンタルロギングを実装するスクリプトを生成するオプションがあります。
  • Oracle MAX_STRING_SIZE初期化パラメータがEXTENDEDに設定されて
    いない
    ことを確認してください。EXTENDEDに設定されている場合、一括取り込みデータベースは、大きな(拡張サイズ)VARCHAR2、NVARCHAR2、またはRAWカラムで定義されたカラムを含むテーブルの挿入と更新をレプリケートできません。
さらに、BFILEアクセスの場合は、次の手順を実行します。
  1. Oracleデータベースに、Oracleサーバーファイルシステム内のオンラインREDOログとアーカイブREDOログの場所をクエリします。次のサンプルクエリを使用できます。
    オンラインREDOログの場所を取得するには、次の手順を実行します。
    select * from v$logfile;
    ログのアーカイブ先を取得するには、次の手順を実行します。
    select dest_id, dest_name, destination, status from V$ARCHIVE_DEST;
  2. 手順1で取得したログファイルの場所を指すONLINELOG_DIRおよびARCHIVELOG_DIRディレクトリオブジェクトを作成します。Oracleディレクトリオブジェクトは、アクセスするログファイルが配置されているOracleサーバーファイルシステム上の物理ディレクトリの論理エイリアス名を指定します。以下に例を示します。
    CREATE DIRECTORY ONLINELOG_DIR AS '/u01/oracle/data'; CREATE DIRECTORY ARCHIVELOG_DIR AS '/u01/oracle/archivedata';
    Oracle Database Ingestion接続でリーダーモードを[ARCHIVEONLY]に設定して、アーカイブログからのみ変更を読み取る場合は、ONLINELOG_DIRディレクトリまたはディレクトリオブジェクトを作成する必要はありません。
    Oracleデータベースは、指定したディレクトリが存在することを確認しません。Oracleファイルシステムに存在する有効なディレクトリを指定していることを確認してください。
  3. ディレクトリオブジェクトがREDOログの正しいファイルシステムパスで作成されたことを確認するには、次のようなselect文を発行します。
    select * from all_directories; OWNER DIRECTORY_NAME DIRECTORY_PATH -------- ------------------- ---------------------------------- SYS ARCHIVELOG_DIR /u01/oracle/data/JO112DTL SYS ONLINELOG_DIR /u01/oracle/data/JO112DTL
  4. Oracleデータベース取り込み接続プロパティで指定された一括取り込みデータベースユーザーに、ONLINELOG_DIRおよびARCHIVELOG_DIRディレクトリオブジェクトへの読み取りおよび書き込みアクセスを付与します。以下に例を示します。
    grant read on directory "ARCHIVELOG_DIR" to "
    cmid_user
    "; grant read on directory "ONLINELOG_DIR" to "
    cmid_user
    ";
  5. Oracle Database Ingestion接続プロパティで、
    [BFILEアクセス]
    チェックボックスを選択します。