D Oracle Databaseについてのトランザクション・ログ監査データ収集

Oracle DatabaseターゲットのREDOログ・パラメータを設定して、監査データ収集を微調整できます。

D.1 Oracle GoldenGateを使用したOracle Databaseトランザクション・ログ監査証跡の概要

Oracle GoldenGateを使用したREDOログ設定からの推奨される収集について学習します。

トランザクション・ログとも呼ばれるREDOログ・ファイルは、データベースで発生したすべてのトランザクションのログを保持するために、Oracle Databaseによって使用されるファイルです。この章では、TRANSACTION LOG監査証跡タイプを使用してOracle DatabaseターゲットのREDOログから監査データを収集するための初期化パラメータの設定に関する推奨事項について説明します。

これらのログ・ファイルを使用すると、障害発生時にOracle Databaseでデータベースに加えられた変更をリカバリできます。たとえば、ユーザーが従業員関連のデータを含む表で給与の値を更新すると、REDOレコードが生成されます。これには、この変更前の値(古い値)と変更後の新しい値が含まれます。REDOレコードは、クラッシュ時またはハードウェア障害時にACID (原子性、一貫性、独立性および永続性)のプロパティを保証するために使用されます。データベースがクラッシュした場合、データベース・データを最後のREDOレコードが書き込まれた時点の状態に戻す、データ・ファイルのすべての変更のREDO (再処理)が実行されます。

REDOログ・レコードには、DML (データ操作言語)およびDDL (データ定義言語)の各操作の前後の値が含まれます。Oracle Audit Vault and Database Firewallでは、トランザクション・ログ・コレクタを使用して、REDOログからの変更された値を監視できます。

トランザクション・ログ・コレクタは、Oracle GoldenGateの統合Extractプロセスを利用して、REDOログ・データをデータベースからXMLファイルに移動します。抽出プロセスは、ソース・データベースに対して実行するように構成されているか、ダウンストリーム・マイニング・データベース(Oracleのみ)で実行するように構成されています。構成済のオブジェクトに対して実行されるDML操作とDDL操作を取得します。トランザクション・ログから取得された操作は、GoldenGate XML証跡ファイルに転送されます。Oracle AVDFのトランザクション・ログ・コレクタは、生成されたXMLファイルからトランザクション・ログのレコードを収集します。こうしたログはAudit Vault Serverに転送され、変更の前と変更された後の値が「データ変更前後の値」レポートに示されます。DDLの変更は、「すべてのアクティビティ・レポート」で確認できます。DMLの変更は、「データ変更前後の値のレポート」で確認できます。

Oracle AVDF 20.10以降、「データ変更前後の値」レポートにはキー列に関する追加情報が含まれています。デフォルトでは、GoldenGateは表の主キー列をキー列として使用します。表に主キーが定義されていない場合や、別の列をキー列として使用する場合は、GoldenGateのパラメータ・ファイルでキー列を指定するオプションを使用できます。

図D-1 トランザクション・ログの収集プロセス

図D-1の説明が続きます
「図D-1 トランザクション・ログの収集プロセス」の説明

関連項目:

REDOログから監査データを収集するための権限をOracle Databaseで設定する手順は、Oracle Databaseの設定スクリプトを参照してください。

D.2 サイズ設定のガイドライン

このトピックで説明されているサイズ設定のガイドラインを確認してそれに従います。

前提条件

Oracle GoldenGateのドキュメントの「システム要件とオペレーティング・システム要件」に記載されているシステムおよびサイズ設定の要件に従います。

一般的なサイズ設定のガイドライン

  1. メモリーおよびCPUの一般的な推奨事項は、マルチ・スレッド・プロセスであり、大規模トランザクションを処理するときに大規模メモリーを使用するため、統合Extractごとに32Gのメモリーと2つのCPUを使用して開始することです。トランザクション量およびトランザクション・パターンに応じて、Oracle GoldenGateのドキュメントのガイドラインに従ってリソースを適切にスケール・アップします。
  2. ディスク領域の一般的な推奨事項は、2Tで開始することですが、ソース・データベースから統合Extractが取得するデータ量に応じて異なります。Extractでは、処理するためにバッファするトランザクションが大きい場合、証跡ファイルにストレージを、キャッシュ・ファイルに一時ディスク領域を使用します。

ガイドラインで参照される計算式には、複数のデータベース・ディクショナリ・ビューがあります。これらによって、トランザクション・ログのサイズに関する情報が提供されます。たとえば、v$logによって、各オンライン・ログの詳細情報が示されます。同様に、v$log_history/gv$log_historyから1日当たりのログ・スイッチの数を見積ることができます。

大規模トランザクションのための一時ディスク領域の要件によって、キャッシュが一杯になり、トランザクションでキャッシュされたデータまたは一時ファイルにオーバーフローする場合があります。アーカイブ・ポリシーを構成し、ファイルの保存期間を定義して、適宜リサイクルできるようにします。

大規模トランザクションを処理するために十分な物理メモリーを維持します。ガイドラインに従って、Extractで使用できるメモリーは32 GB以上にします。より正確な見積りを行うには、データベース・サーバーの実行履歴から統計を収集し、最大のトランザクションのサイズを確認します。Oracle GoldenGateでは、トランザクションの統計を表示するsend <extract> cachemgr, cachestatsコマンドが用意されており、これは見積りのベースラインを特定するのに役立ちます。

一般的に、Oracle GoldenGate統合Extractプロセスのサイズ設定、ストレージおよびメモリーは、トランザクション量とトランザクション・パターンに大きく依存します。標準値がないため、すべての単一データベース・サーバーからこれらの統計を収集して見積ります。

単一のGoldenGateインスタンスまたは統合Extractプロセスでサポートできるデータベースの数は、複数の抽出をサポートするシステム・リソースによって異なります。すべてのデータベースに対して1つの抽出を構成してください。

D.3 Oracle GoldenGateの制限付き使用ライセンス

Oracle GoldenGateの制限付きライセンスについて学習します。

Oracle GoldenGateの制限付き使用ライセンスは、Oracle Audit Vault and Database Firewallリリース20に付属しています。このライセンスでは、Oracle GoldenGateをインストールして、Oracle AVDFによって監視されるデータベース・システムのトランザクションの変更を取得するために統合Extractプロセスを使用できます。Oracle GoldenGateから抽出されたデータはOracle AVDFによってのみ消費されます。Oracle GoldenGate Microservices Architectureは、Oracle AVDFアプライアンスがデプロイされているサーバー以外の個別のサーバーにデプロイします。後で、Oracle GoldenGateの統合Extract機能を構成します。Oracle GoldenGateバージョン19.1.0.0.4は、Oracle Audit Vault and Database Firewall 20.9以前でサポートされる最小バージョンです。また、Oracle GoldenGate 21.9.0.0.0は、Oracle Audit Vault and Database Firewall 20.10以降でサポートされる最小バージョンです。12.2より前のOracle Databasesをサポートするには、ダウンストリーム・マイニングを構成する必要があります。これには、Oracle Database Enterprise Editionのデプロイメントが必要で、別途ライセンスが必要です。

D.4 Oracle GoldenGateのOracle Databaseへのインストール

Oracle DatabaseのためのOracle GoldenGateをインストールするには、次の手順を実行します。

Oracle GoldenGateは、Oracle AVDFアプライアンスがデプロイされているサーバー以外の別個のサーバーにデプロイします。その後で、Oracle GoldenGate統合Extract機能を構成します。

Oracle AVDF 20.9以前

Oracle Software Delivery Cloudから、Oracle GoldenGate 19.1.0.0.0 Microservices Architectureをダウンロードしてインストールします。

Oracle GoldenGate 19cドキュメントに記載された、「Oracle DatabaseのためのOracle GoldenGateのインストール」の手順を実行します。Oracle GoldenGateのインストール後に、My Oracle SupportからOracle GoldenGate 19.1.0.0.4 Microservices Architectureのパッチを適用します。

ノート:

Oracle GoldenGateのインストール後、Oracleサポートに連絡して、パッチ321756093206387133701099および34014874を適用するためのマージ・ラベル・リクエストを作成します。このパッチは、Oracle GoldenGateのインストールに適用する必要があります。

Oracle AVDF 20.10以降

My Oracle Supportから、Oracle GoldenGate 21.9.0.0.0 Microservices Architectureをダウンロードしてインストールします(パッチ34958369完全インストール)。

Oracle GoldenGate 21cのOracle GoldenGate Microservicesドキュメントに記載された、「Oracle GoldenGateのインストール」の手順を実行します。

D.5 Oracle Database 12.2.0.1以降からのトランザクション・ログ・データの取得

Oracle Databaseバージョン12.2.0.1以降からトランザクション・ログ・データを取得する方法を学習します。

Oracle GoldenGate統合Extractプロセスは、Oracle Databaseバージョン12.2.0.1以降でのみサポートされます。この場合、Oracle GoldenGate統合Extractはソース・データベースで構成されます。Oracle Database 12.2.0.1以降からトランザクション・ログ・データを取得するには、次の項のステップを同じ順序で実行します。

  1. ユーザーの作成および関連する権限の付与
  2. Oracle Database用のOracle GoldenGateパラメータの構成
  3. GoldenGate管理サーバーでの新しい資格証明の作成
  4. Oracle GoldenGate管理サーバーでの新しい統合Extractの作成

D.6 12.2.0.1より前のOracle Databaseからトランザクション・ログ・データを取得するダウンストリーム・マイニング

12.2.0.1より前のバージョンのOracle Databaseからトランザクション・ログ・データを取得する方法を学習します。

Oracle GoldenGate統合Extractプロセスは、Oracle Databaseバージョン12.2.0.1以降でのみサポートされます。この場合、Oracle GoldenGate統合Extractはソース・データベースで構成されます。

12.2.0.1より前のバージョンのOracle Databaseからのトランザクション・ログ・データを取得するには、ダウンストリーム・マイニングを使用する必要があります。この場合、ソース・データベースとダウンストリーム・マイニング・データベースの2つのデータベースがあります。ソース・データベース(12.2.0.1より前のOracle Database)は、オンラインREDOログをダウンストリーム・データベース(Oracle Databaseバージョン12.2.0.1以降)に配布するように構成されます。次に、統合Extractがダウンストリーム・データベース上に構成されます。

ノート:

D.7 Oracle AVDF 12.2から20へのトランザクション・ログ監査証跡の移行

Oracle AVDF 12.2から20にトランザクション・ログ監査証跡を移行する方法を学習します。

トランザクション・ログ監査証跡は、Oracle AVDF 12.2から20に移行できます。Oracle AVDF 20にアップグレードする前に、次の手順を実行します。

  1. Oracle GoldenGateをインストールしてデプロイします。
  2. Oracle AVDF 12.2で、すべてのトランザクション・ログ監査証跡に対して次の手順を実行します。

    1. Oracle AVDF 12.2のトランザクション・ログ監査証跡が、Oracleソース・データベースで実行されていることを確認します。Oracle Goldengate統合Extractを作成します。Oracleソース・データベースが12.2.0.1よりも前の場合は、ダウンストリーム・マイニングを構成して、ダウンストリーム・マイニング・データベースの統合Extractを作成します。Oracleソース・データベースがバージョン12.2.0.1以降の場合は、そのソース・データベースの統合Extractを作成します。
    2. ソース・データベース・インスタンスごとに、一意の場所に統合Extract XMLファイルを構成します。
    3. 統合Extractの作成後に5分間待機して、正常に実行されていることを確認します。統合Extractが失敗した場合は、「レポート」タブでログを調べて、問題を修正します。
    4. 統合Extractが正常に実行されていることを確認してから、DDL/DML文が実行されるまで待機します。XMLデータが統合Extractファイルに含まれていることを確認します。
    5. 12.2のトランザクション・ログ監査証跡を停止します。Oracle AVDF 12.2のトランザクション・ログ監査証跡を停止するまでの短時間、GoldenGate統合ExtractとOracle AVDF 12.2の両方のトランザクション・ログ監査証跡が同時に実行されます。そのため、この短い期間にのみ重複レコードが現れます。この短期間に観測された重複レコードは、安全に無視してください。
    6. ここに示したステップが、すべての12.2トランザクション・ログ監査証跡に対して正常に実行されたことを確認します。
  3. 現在のOracle AVDFのバージョンが12.2.0.9.0より前の場合は、まず、12.2.0.9.0にアップグレードしてから、Oracle AVDF 20にアップグレードします。
  4. Oracle AVDF 20にアップグレードしたら、トランザクション・ログ監査証跡があるターゲット・データベースごとに、次のステップを実行します。

    1. 古いトランザクション・ログ監査証跡を削除します。
    2. 新しいトランザクション・ログ監査証跡を作成します。
    3. 証跡の場所が、統合Extract XMLファイルを格納しているディレクトリのフルパスであることを確認します。

D.8 ユーザーの作成および関連する権限の付与

ユーザーを作成し、必要な権限を付与する方法を学習します。

データベースのタイプに応じて新規ユーザーを作成します。

  • スタンドアロン・データベースの場合は、新規ユーザーを作成し、関連する権限をそのユーザーに付与します。この新しいユーザーは、Oracle GoldenGate統合Extractを使用してOracle DatabaseからREDOログ・データをフェッチできます。

  • マルチテナント・データベースの場合は、CDBで新規ユーザーを作成し、関連する権限をそのユーザーに付与します。この新しいCDBユーザーは、Oracle GoldenGate統合Extractを使用してOracle Databaseの個々のPDBからREDOログ・データをフェッチできます。

スタンドアロン・データベースの場合は、次の手順に従います。

  1. sysdbaでデータベースにログインします。
  2. 次のコマンドを実行して、サンプル・ユーザーavggadminを作成します。

    create user avggadmin identified by avggadmin;
  3. 次のコマンドを実行して、新しく作成したユーザーに権限を付与します。

    grant create session, resource, alter system to avggadmin;
    grant unlimited tablespace to avggadmin;
  4. 次のコマンドを実行して、GoldenGateのadmin権限をサンプル・ユーザーavggadminに付与します。

    
    begin
    DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(
    'avggadmin',
    '*',
    TRUE,
    TRUE,
    NULL,
    NULL,
    NULL,
    'CURRENT');
    end;
    /
    

マルチテナント・データベースの場合は、次の手順に従います。

  1. sysdbaとしてCDB$ROOTにログインします。
  2. 次のコマンドを実行して、サンプル・ユーザーc##avggadminを作成します。
    create user c##avggadmin identified by c##avggadmin container=all;
  3. 次のコマンドを実行して、新しく作成したユーザーに権限を付与します。
    grant create session, resource, alter system to c##avggadmin container=all;
    grant unlimited tablespace to c##avggadmin container=all;
  4. 次のコマンドを実行して、GoldenGateのadmin権限をサンプル・ユーザーc##avggadminに付与します。
    
    begin
    DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(
    'c##avggadmin',
    '*',
    TRUE,
    TRUE,
    NULL,
    NULL,
    NULL,
    'ALL');
    end;
    /
    

D.9 Oracle Database用のOracle GoldenGateパラメータの構成

この手順に従って、Oracle Database用のOracle GoldenGateパラメータを構成します。

  1. マルチテナント・データベースの場合は、sysdbaとしてCDB$ROOTにログインします。スタンドアロン・データベースの場合は、sysdbaとしてログインします。
  2. 次のコマンドを実行して、GoldenGateレプリケーションを有効にします。
    alter system set enable_goldengate_replication=true scope=spfile;
  3. 次のコマンドを実行して、アーカイブ・ログを有効にします。
    shutdown immediate
    startup mount
    alter database archivelog;
    alter database open;
    alter pluggable database all open  /*Applicable only for multitenant database*/;
    select name,log_mode from v$database;
  4. Oracle GoldenGateでは、強制ロギングを有効にすることをお薦めします。次のコマンドを実行して、強制ロギングを有効にします。
    alter database force logging;
  5. 次のコマンドを実行して、サプリメンタル・ロギングを有効にします。
    alter database add supplemental log data;
    select force_logging, supplemental_log_data_min from v$database;
  6. バージョンが12.2.0.1.0より前の場合のみ、データベースの互換性を変更します。次のコマンドを実行して、データベースの互換性を確認します。
    show parameter compatible;
  7. データベースの互換性パラメータは、統合Extractを構成するデータベースに対してのみ変更する必要があります。次のコマンドを実行して、データベースの互換性をバージョン12.2.0.1.0以上に設定します。通常の統合Extractの場合は、ソース・データベースで次のコマンドを実行します。ダウンストリーム・マイニング構成の場合は、ソース・データベースではなくダウンストリーム・マイニング・データベースでのみ次のコマンドを実行します。
    alter system set compatible = '12.2.0.1.0' scope=spfile;
  8. データベースの統合Extractの数に応じて、適切なstreams_pool_sizeを設定します。サイズ設定の詳細は、Oracle GoldenGateパフォーマンスのベスト・プラクティスを参照してください。
  9. 次のコマンドを実行して、現行のパラメータ値を確認します。
    show parameter streams;
  10. streams_pool_sizeが前述のサイズ設定のドキュメントに準拠していない場合は、次のコマンドを実行して、関連するstreams_pool_sizeを設定します。
    alter system set streams_pool_size=1250M scope=spfile;
    shutdown immediate;
    startup;
    alter pluggable database all open /*Applicable only for multitenant database*/;
    show parameter streams;

D.10 GoldenGate管理サーバーでの新しい資格証明の作成

Oracle GoldenGate管理サーバーで、ターゲット・データベース用の新しい資格証明を作成します。

  1. Oracle GoldenGate管理サーバーにログインします。
  2. 左側のナビゲーション・メニューで、「構成」をクリックします。
  3. メイン・ページの「資格証明」の横にあるプラス・ボタンをクリックします。
  4. 「資格証明ドメイン」フィールドに、ドメイン名を入力します。たとえば、inst1です。
  5. 「資格証明別名」フィールドに別名を入力します。たとえば、avggadmin_inst1です。
  6. 「ユーザーID」フィールドに、<username>@<connect string>という形式でユーザー名を入力します。たとえば:
    avggadmin@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= foobar.example.com)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME= foobar.example.com)))
  7. パスワードを入力します。
  8. 「パスワードの確認」フィールドにパスワードを再入力します。
  9. 「発行」をクリックします。
  10. 資格証明の作成後に、「データベースにログイン」アイコンをクリックして、新しく作成した資格証明でターゲット・データベースに接続できることを確認します。
  11. 「TRANDATA情報」セクションに入力します。

    データベース接続のテスト後に、資格証明の表の下に「TRANDATA情報」セクションが表示されます。(19cの場合、これは「トランザクション情報」セクションになります)

    例として、次に21cのステップを示します:

    1. 「TRANDATA情報」の横にあるプラス・ボタンをクリックします。
    2. 「表」を選択して、「表名」フィールドに表名を追加します。
    3. 列を必要に応じて編集します。
    4. 「CSNモードの準備」ドロップダウン・リストで、「nowait」を選択します。
    5. 「発行」をクリックします。

D.11 Oracle GoldenGate管理サーバーでの新しい統合Extractの作成

この手順に従って、Oracle GoldenGate管理サーバーでターゲット・データベース用の新しい統合Extractを作成します。

  1. Oracle GoldenGate管理サーバーにログインします。
  2. 左側のナビゲーション・メニューの「概要」タブをクリックします。
  3. メイン・ページの「Extract」の横にあるプラス・ボタンをクリックします。
  4. 「Extractの追加」セクションおよび「抽出タイプ」サブセクションで、「統合Extract」ラジオ・ボタンを選択します。
  5. 「次」をクリックします。
  6. 「抽出オプション」サブセクションで、「プロセス名」を入力します。
  7. オプションで、「説明」を入力します。
  8. 「目的」フィールドで、「一方向」を選択します。
  9. ドロップダウンから「資格証明ドメイン」を選択します。
  10. ドロップダウンから「資格証明別名」を選択します。
  11. 「開始」フィールドで「今すぐ」を選択します。
  12. 「トレイル名」フィールドに2文字の証跡名を入力します。
  13. 「トレイルのサブディレクトリ」を入力します。

    ノート:

    トレイルのサブディレクトリは、任意のディレクトリのフルパスにできます。このディレクトリは、ファイル・システム上に存在している必要があります。
  14. 「トレイル・サイズ」(MB)を入力します。

    ノート:

    GoldenGateのレコード生成率が低い場合(1秒当たり50レコード未満)、「トレイル・サイズ」を小さい値に設定することをお薦めします。たとえば、100MBです。
  15. 「PDBに登録」フィールドでPDBコンテナを選択します。
  16. XMLファイルの最大サイズは、「トレイル・サイズ」フィールドを使用して構成できます。XMLファイルがこのサイズに達すると、ローテーションが発生し、統合Extractは新しいXMLファイルへの書込みを開始します。
  17. その他のフィールドは、オプションであるため、変更しないでおくことができます。
  18. 「次」をクリックします。
  19. 「パラメータ・ファイル」サブセクションで、次のパラメータを入力します。
    
    extract <extract_name>
    useridalias <credential_userid_alias> domain <credential_domain>
    OUTPUTFORMAT XML _AUDIT_VAULT
    exttrail <sub_directory>/<trail_name>
    SOURCECATALOG <pdb_name>
    DDL <ddl options to include or exclude schemas and tables>
    TABLE <schema>.<table>;
    

    サンプル・パラメータ・ファイル:

    
    extract int_ex_1
    useridalias tkggadmin_inst1 domain inst1
    OUTPUTFORMAT XML _AUDIT_VAULT
    exttrail subdirectory/aa
    SOURCECATALOG cdb1_pdb1
    DDL INCLUDE ALL
    TABLE scott.*;
    

    ノート:

    • SOURCECATALOGパラメータは、マルチテナント・データベースにのみ適用可能で、スタンドアロン・データベースには不要です。
    • OUTPUTFORMATパラメータのXML_AUDIT_VAULTの間には空白があります
    • OUTPUTFORMATパラメータは、パラメータ・ファイル内でexttrailパラメータよりも前に記述する必要があります。そうでない場合、XMLファイルは生成されません。
    • TABLEコマンドが常にセミコロン(;)で終わるようにします。
    • すべてのパラメータの順序が、前述の順序と完全に一致するようにします。
    • DDL INCLUDEコマンドは、DDLの変更の取得対象となる表を指定するために使用します。
    • TABLEコマンドは、DMLの変更の取得対象となる表を指定するために使用します。
    • DDLTABLEおよびTABLEEXCLUDEコマンドの詳細は、『Oracle® GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX』の次の項を参照してください。
  20. 「パラメータ・ファイル」フィールドに値を入力したら、「作成および実行」ボタンをクリックして統合Extractプロセスを開始します。
  21. 「Extract」パネルに、新しく作成された統合Extractが表示されます。統合Extractのステータスを表示するには、次のステップに従います。
    1. 「統合Extract」アイコンの横にある「アクション」ドロップダウンをクリックします。
    2. 「詳細」を選択します。
    3. 「レポート」タブをクリックして、診断メッセージを表示します。Extractプロセスが失敗した場合、関連するエラーがレポートに表示されます。

    関連項目:

D.12 LogMinerディクショナリの定期的なバックアップ

LogMinerディクショナリのバックアップを作成するタイミングを学習します。

Oracle GoldenGateでは、LogMinerディクショナリの定期的なバックアップ(おそらく毎日)をお薦めします。これは、LogMinerディクショナリをREDOログ・ファイルに抽出することで実行できます。データベース・ジョブを作成して、定期的なバックアップを実行できます。

D.13 サンプルのOracle GoldenGate統合Extractパラメータ・ファイル

これらのOracle GoldenGate統合Extractパラメータ・ファイルをサンプルとして使用します。

一部の表を除くスキーマのDMLおよびDDLの監査

次のパラメータ・ファイルでは、次のものを取得するように統合Extractを構成します:

  • accountsスキーマ内のオブジェクトを除く、すべてのオブジェクトに対するDDL操作
  • scottスキーマ内のemp表を除く、scottスキーマ内のすべての表に対するDML操作

extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
DDL INCLUDE ALL, EXCLUDE OBJNAME accounts.*
TABLE scott.*;
TABLEEXCLUDE scott.emp

スキーマのすべてのDMLおよびDDLの監査

次のパラメータ・ファイルでは、次のものを取得するように統合Extractを構成します:

  • scottスキーマ内のすべてのオブジェクトに対するDDL操作
  • scottスキーマ内のすべての表に対するDML操作

extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
DDL INCLUDE OBJNAME scott.*
TABLE scott.*;

スキーマのDDLのみの監査

次のパラメータ・ファイルでは、scottスキーマ内のすべてのオブジェクトに対するDDL操作を取得する統合Extractを構成します。


extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
DDL INCLUDE OBJNAME scott.*

スキーマのDMLのみの監査

次のパラメータ・ファイルでは、scottスキーマ内のすべての表に対するDML操作を取得する統合Extractを構成します。


extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
TABLE scott.*;

すべてのスキーマのすべてのDDLの監査

次のパラメータ・ファイルでは、すべてのオブジェクトに対するDDL操作を取得する統合Extractを構成します。


extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
DDL INCLUDE ALL

表のDMLを監査して、キー列として使用する列を設定します

次のパラメータ・ファイルは、統合Extractが次の操作を実行するように構成します:

  • scottスキーマ内のemp表に対するDML操作の取得
  • empnoenameのキー列としての設定
extract <extract_name>
useridalias <credential_userid_alias> domain <credential_domain>
OUTPUTFORMAT XML _AUDIT_VAULT
exttrail <sub_directory>/<trail_name>
SOURCECATALOG cdb1_pdb1
TABLE scott.emp, KEYCOLS (empno, ename);

D.14 Audit Vaultコンソールでの監査証跡の作成

監査証跡を作成する前に必須のターゲット属性を作成する方法を学習します。

監査証跡の作成前に、Audit Vault ServerコンソールのOracle Databaseターゲットで、必須のターゲット属性AV.COLLECTOR.TIMEZONEOFFSETが設定されるようにします。この属性は、Oracle Databaseのタイムゾーン・オフセットに設定する必要があります。たとえば、正のオフセットは+03:00、負のオフセットは-03:00です。

次の詳細またはガイドラインを指定して、監査証跡を作成します。

  • 証跡のタイプ: TRANSACTION LOG
  • 証跡の場所: 統合ExtractのXMLファイルを含むディレクトリのフルパス
  • エージェントは、証跡の場所にアクセスできるホスト・マシン上で実行されている必要があります
  • エージェント・ユーザーには証跡の場所に対する読取り権限が必要です

D.15 監査証跡のクリーンアップ

Audit Vault Agentに読み取られたファイルを削除する方法を学習します。

Oracle GoldenGate Collectorは、チェックポイント情報を監査証跡のクリーンアップ(ATC)ファイルに書き込みます。このファイルは、<Agent_Home>/av/atcディレクトリにあります。ATCファイルには、ターゲット・タイプ、ターゲット名、証跡のタイプ、証跡ディレクトリおよびチェックポイント・タイムスタンプの情報が含まれます。ATCファイルの拡張子は.atcです。チェックポイント・タイムスタンプより前のイベント・タイムスタンプを持つすべてのレコードは、Audit Vault Agentによって読み取られ、Audit Vault Serverのevent_log表に書き込まれます。

ノート:

ATCファイルのタイムスタンプはUTC (協定世界時)タイムゾーンです。

ATCファイルの例を次に示します。


securedTargetType=Oracle Database
SecuredTargetName=secured_target_oracle_one
TrailType=TRANSACTION LOG
TrailName=/foo/bar/trail_files
2020-06-30 07:11:46.0

Oracle AVDF 20.3以前の場合

Audit Vault Agentによって読み取られたファイルを削除するには、ファイルを削除するスクリプトを作成します。これらは、最終変更のタイムスタンプが、ATCファイル内に存在するチェックポイント・タイムスタンプよりも古いファイルです。このスクリプトは、定期的に実行するようにスケジュールできます。

Oracle AVDF 20.4以降の場合

Audit Vault Agentによって読み取られたファイルを削除するには、Oracle GoldenGate Extractクリーンアップ・ユーティリティを使用します。これは、Oracle AVDF 20.4以降で使用できます。

D.16 GoldenGateダウンストリーム・マイニングの構成

GoldenGateダウンストリーム・マイニングを構成する方法を学習します。

Oracle GoldenGate統合Extractプロセスは、Oracle Databaseバージョン12.2.0.1以降でのみサポートされます。この場合、Oracle GoldenGate統合Extractはソース・データベースで構成されます。12.2.0.1より前のバージョンのOracle Databaseからのトランザクション・ログ・データを取得するために、ダウンストリーム・マイニングが使用されます。この場合、ソース・データベースとダウンストリーム・マイニング・データベースの2つのデータベースがあります。ソース・データベース(12.2.0.1より前のバージョンのOracle Database)は、オンラインREDOログをダウンストリーム・データベース(Oracle Databaseバージョン12.2.0.1以降)に送信するように構成されます。この場合、ダウンストリーム・データベースで、_AUDIT_VAULT形式でXMLファイルを生成するように統合Extractが構成されます。

前提条件

ソース・データベースとダウンストリーム・マイニング・データベースの両方で、ユーザーの作成および関連する権限の付与およびOracle Database用のOracle GoldenGateパラメータの構成のステップを実行します。

パスワード・ファイルの構成

  1. 次のコマンドをソースデータベースで実行して、データベースの互換性を確認します。

    show parameter compatible;
  2. ソース・データベースのバージョンが12.1.0.2.0の場合は、次のコマンドを実行します。

    alter system set compatible = '12.1.0.2.0' scope=spfile;
    shutdown immediate
    startup
  3. 次のコマンドを実行して、互換性が12.1.0.2.0に変更されているかどうかを確認します。

    show parameter compatible;
  4. 次の問合せを実行して、ソース・データベースとダウンストリーム・マイニング・データベースの両方でglobal_nameを検索します。

    select * from global_name;
  5. ソース・データベースとダウンストリーム・マイニング・データベースに同じglobal_nameがないことを確認します。

  6. ソース・データベースにリモート・ログイン・パスワード・ファイルがある場合は、そのファイルをマイニング・データベース・システムの適切なディレクトリにコピーします。パスワード・ファイルは、ソース・データベースおよびマイニング・データベースで同じである必要があります。ソース・データベースとダウンストリーム・マイニング・データベースに同じパスワード・ファイルがない場合、ソース・データベースで次のコマンドを実行し、ソース・パスワード・ファイルをダウンストリーム・マイニング・データベースにコピーします。

    alter system set remote_login_passwordfile = 'shared' scope = spfile;
    shutdown immediate
    startup
  7. ソース・データベースでは、このパスワード・ファイルは$ORACLE_HOME/dbs/orapw<$ORACLE_SID>です。

    サンプルのソース・パスワード・ファイルは、/foo/bar/orapwsourceです。

  8. ダウンストリーム・マイニング・データベースで次のコマンドを実行し、ダウンストリーム・パスワード・ファイルを検索します。

    select file_name from v$passwordfile_info;

    サンプルのダウンストリーム・パスワード・ファイルは、/foo/bar/orapwdownstreamです。

  9. 次のコマンドを実行して、既存のダウンストリーム・パスワード・ファイルのバックアップを取得します。

    cp /foo/bar/orapwdownstream /foo/bar/orapwdownstream_orig
  10. 次のコマンドを実行して、ソース・パスワード・ファイルをダウンストリーム・パスワード・ファイルの場所にコピーします。

    cp /foo/bar/orapwsource /foo/bar/orapwdownstream

ソース・データベースの構成

この例では、ソース・データベースのデータベース一意名はsource_db_unique_nameで、ダウンストリーム・マイニング・データベースのデータベース一意名はdownstream_db_unique_nameです。

次のコマンドを実行して、データベース一意名を検索します。

select db_unique_name from v$database;

ソース・データベースで次のコマンドを実行して、ダウンストリーム・マイニング・データベースにREDOデータを送信するようにソース・データベースを構成します。LOG_ARCHIVE_DEST_2パラメータの設定中に、ダウンストリーム・マイニング・データベースの接続詳細を指定する必要があります。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(source_db_unique_name,downstream_db_unique_name)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=foo.bar.com)(PORT=1234))(CONNECT_DATA=(SERVICE_NAME=foo.bar.com)))" ASYNC OPTIONAL NOREGISTER VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=downstream_db_unique_name';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

ダウンストリーム・マイニング・データベースの構成

  1. アーカイブをダウンストリーム・マイニング・データベースで有効にし、統合Extractをリアルタイム統合取得モードで実行する必要があります。ダウンストリーム・マイニング・データベースで次のコマンドを実行して、ローカルのREDOログ・ファイルをアーカイブします。

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/foo/bar/arc_dest/local valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)';
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
  2. ソース・データベースのオンラインREDOログからREDOデータを受け取るスタンバイREDOログをアーカイブするように、ダウンストリーム・マイニング・データベースを構成する必要があります。外部アーカイブ・ログは、ダウンストリーム・マイニング・データベースのリカバリ領域にはアーカイブされない必要があります。ダウンストリーム・マイニング・データベースで次のコマンドを実行して、スタンバイREDOログをローカルにアーカイブします。

    ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(source_db_unique_name,downstream_db_unique_name)';
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/foo/bar/arc_dest/standbyredo VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)';
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE ;
  3. ソース・データベースで次のコマンドを実行し、結果をノートにとります。

    select group#, thread#, bytes from v$log;
  4. スタンバイ・ログ・ファイル・グループをマイニング・データベースに追加します。スタンバイ・ログ・ファイルのサイズは、少なくともソース・ログ・ファイルのサイズである必要があります。スタンバイ・ログ・ファイル・グループの数は、ソース・オンライン・ログ・ファイル・グループの数より1つ以上多くする必要があります。これはOracle RACインストールの場合に、各インスタンス(スレッド)に適用されます。ソース・データベースにn個のスレッドがあり、それぞれm個のREDOログ・グループがある場合、ダウンストリーム・マイニング・データベースにn*(m+1)個のREDOログ・グループを構成する必要があります。

    たとえば、次は、問合せselect group#, thread#, bytes from v$log;の結果であると仮定します。

    グループ番号 スレッド番号 バイト
    1 1 26214400
    2 1 26214400

    スレッド数(n)は1です。

    スレッド当たりのグループ数(m)は2です。

    したがって、各ログ・グループのサイズが26214400バイト以上である必要があるダウンストリーム・マイニング・データベースには、n*(m+1) = 3個のREDOログ・グループが必要です。

  5. この例では、ダウンストリーム・マイニング・データベースで次の問合せを実行します。

    
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 3
    ('/foo/bar/arc_dest/standbyloggroups/slog3a.rdo', '/foo/bar/arc_dest/standbyloggroups/slog3b.rdo') SIZE 500M;
     
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4
    ('/foo/bar/arc_dest/standbyloggroups/slog4a.rdo', '/foo/bar/arc_dest/standbyloggroups/slog4b.rdo') SIZE 500M;
     
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 5
    ('/foo/bar/arc_dest/standbyloggroups/slog5a.rdo', '/foo/bar/arc_dest/standbyloggroups/slog5b.rdo') SIZE 500M;
     
    SELECT * FROM V$STANDBY_LOG;

統合Extractの登録

  1. Oracle GoldenGate管理サーバーでソース・データベースとダウンストリーム・マイニング・データベースの両方の資格証明を作成するために、「GoldenGate管理サーバーでの新しい資格証明の作成」のステップを実行します。

  2. adminclientコマンドライン・インタフェースを起動します。

    $GG_HOME/bin/adminclient
  3. コマンドを実行して、GoldenGateサービス・マネージャに接続します。SSLが構成されている場合は、次のコマンドを実行します。

    connect https://<hostname>:<port> as <username> password <password> !

    SSLが構成されていない場合は、次のコマンドを実行します。

    connect http://<hostname>:<port> as <username> password <password> !

    SSLが構成されている場合のコマンド例:

    connect https://localhost:1234 as ggadminuser password ggadminpassword !

    SSLが構成されていない場合のコマンド例:

    connect https://localhost:1234 as ggadminuser password ggadminpassword !
  4. 次のコマンドを実行して、adminclientのソース・データベースにログインします。

    dblogin useridalias <source db user id> domain <source db domain>

    たとえば:

    dblogin useridalias avggadmin_remotesourceinst1 domain remotesourceinst1
  5. 次のコマンドを実行して、adminclientのダウンストリーム・マイニング・データベースにログインします。

    miningdblogin useridalias <downstream db user id> domain <downstream db domain>

    たとえば:

    miningdblogin useridalias avggadmin_remotedowninst1 domain remotedowninst1
  6. 次のコマンドを実行して、統合Extractを追加および登録します。これらのステップを実行する前に、統合ExtractのXMLファイルを格納する必要があるサブディレクトリを手動で作成します。

    ADD EXTRACT <extract name> INTEGRATED TRANLOG BEGIN NOW
    REGISTER EXTRACT <extract name> DATABASE
    ADD EXTTRAIL <subdirectory>/<trail name>, EXTRACT <extract name>

    このコマンドを実行すると、OGG-12029 The file with name '<extract name>.prm' does not existというメッセージが表示されることがあります。このメッセージは無視してください。

    たとえば:

    
    ADD EXTRACT ext1 INTEGRATED TRANLOG BEGIN NOW
    REGISTER EXTRACT ext1 DATABASE
    ADD EXTTRAIL e1/e1, EXTRACT ext1
  7. Oracle GoldenGate管理サーバーにログインします。

  8. 「Extract」パネルに、新しく作成された統合Extractが表示されます。統合Extractのパラメータ・ファイルを更新するには、次のステップに従います。

    1. 「統合Extract」アイコンの横にある「アクション」ドロップダウンをクリックします。
    2. 「詳細」を選択します。
    3. 「パラメータ」タブで、次のパラメータを入力します。

      
      extract <extract name>
      useridalias <source db user id> domain <source db domain>
      TRANLOGOPTIONS MININGUSERALIAS <downstream db user id> domain <downstream db domain>
      TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine Y)
      OUTPUTFORMAT XML _AUDIT_VAULT
      exttrail <subdirectory>/<trail name>
      DDL INCLUDE ALL
      TABLE <schema>.<table>;
      

      たとえば:

      
      extract ext1
      useridalias avggadmin_remotesourceinst1 domain remotesourceinst1
      TRANLOGOPTIONS MININGUSERALIAS avggadmin_remotedowninst1 domain remotedowninst1
      TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine Y)
      OUTPUTFORMAT XML _AUDIT_VAULT
      exttrail e1/e1
      DDL INCLUDE ALL
      TABLE scott.*;
      
  9. パラメータの更新後に、「適用」ボタンをクリックします。

  10. 「統合Extract」アイコンの横にある「アクション」ドロップダウンをクリックします。

  11. 「開始」ボタンをクリックして統合Extractを開始します。統合Extractが正常に開始されるまで5分間待機してから、バックグラウンドのログ・マイニング・プロセスを作成します。ログ・マイニング・プロセスはバックグラウンドで実行され、ユーザーには表示されません。

  12. ソース・データベースで次のコマンドを実行して、ソース・データベースのログ・ファイルを切り替えます。

    select * from v$log;
    alter system switch logfile;
    select * from v$log;
  13. ログ・スイッチの実行後、5分間待機します。統合Extractでは、XMLファイルの作成を開始するには数分かかります。

ダウンストリーム・マイニングのステータスの確認

ソース・データベースとダウンストリーム・マイニング・データベースの両方で、次のコマンドを実行します。

select * from V$archive_dest_status;
select * from V$archive_dest;

LOG_ARCHIVE_DEST_1およびLOG_ARCHIVE_DEST_2の値を持つdest_name列がある行で、ステータス列の値がVALIDgap_status列の値がNO GAPまたはnullであることを確認します。

Status列の値がERRORの場合は、エラー列に、関連するエラー・メッセージが表示されます。

統合Extractのステータスの確認

  1. Oracle GoldenGate管理サーバーにログインします。
  2. 「Extract」パネルを表示します。統合Extractが表示されます。
  3. 統合Extractのステータスを確認します。「統合Extract」アイコンの横にある「アクション」ドロップダウンをクリックします。
  4. 「詳細」を選択します。
  5. 「レポート」タブをクリックして、診断メッセージを表示します。Extractプロセスが失敗した場合、関連するエラーがレポートに表示されます。

関連項目:

「ダウンストリーム・マイニング・データベースの構成」および「ダウンストリーム・マイニングの構成例」で確認できるダウンストリーム・マイニングのプロセスについて理解しておきます。