この記事は”Angeline Dhanarani“による”Audit Active Data Guard with Data Safe in Oracle Cloud“の日本語翻訳版記事です。

2024年1月26日


Oracle Data Safeを利用して、Oracle Database on Oracle Exadata Database Service on Dedicated Infrastructure(ExaDB-D)とOracle Base Database Service(BaseDB)で構成されているActive Data Guardのアクティビティを監視できるようになりました。

Active Data Guard(ADG)はOracle Data Guardテクノロジの進化版であり、本番データベースから作業をオフロードして重要なトランザクション用のリソースを解放するという、特定の目的のために設計された重要なイノベーションを組み込んでいます。

ADGはREDO転送が行われている間もフィジカル・スタンバイ・データベースにRead-onlyでアクセスできるようにします。レポートや分析、バックアップ、問い合わせ、さらに一時的な書き込み(Oracle Database 19c新機能)まで、本番システムから同期されたフィジカル・スタンバイ・データベースに処理をオフロードできます。これがオフロードされないと、これらのワークロードがプライマリ実稼働サイトの貴重なリソースを消費することになります。ADG は貴重なCPUおよびI/Oサイクルを節約し、システム構成内のリソースの効率的な使用を促進します。ADGは読み取り/書き込みワークロード用にスタンバイ・データベースを開放するため、ほとんどの規制要件とコンプライアンス要件では、(プライマリ運用データベースと比べて厳密ではありませんが)スタンバイ・データベースでのデータベース・アクティビティを監視する必要性が強調されています。

Data Safeでは、監査レコードの冗長を気にすることなく、ADG構成内の全てのデータベース・ピア(プライマリ・データベースと関連するすべてのスタンバイ・データベースを含む)のデータベース・アクティビティを1つの画面で監視できる機能を提供しています。Data Safeの機能を有効にするOracle Database監査のメカニズムについて理解すると、この機能がなぜ重要であるかお分かりいただけると思います。

Oracle Databaseの総合監査レコードは、AUD$UNIFIEDというAUDSYSスキーマの表に書き込まれます。データベースが書き込み可能でない場合(データベースが閉じられているか、ADGのように読み取り専用など)、Oracle Databaseは監査レコードを外部オペレーティング・システムのスピルオーバー監査ファイルに書き込みます。スピルオーバー・ファイルの監査データはGV$UNIFIED_AUDIT_TRAILビューに表示されます。

UNIFIED_AUDIT_TRAILビューは、AUDSYS.AUD$UNIFIED表とGV$UNIFIED_AUDIT_TRAILのUNION ALLです。

Oracle Database 12cで総合監査が導入されて以来、スタンバイ・データベースからの監査レコードを監視する機能がUNIFIED_AUDIT_TRAILに組み込まれています。ただし、プライマリ・データベースの監査レコード(AUD$UNIFIEDに書き込まれる)はREDOで取得され、スタンバイ・データベースにレプリケートされます。そのため、スタンバイとプライマリのアクティビティを分離するのは困難でした。

そこで、Oracle Database 19c リリース・アップデート21(19.21)では、UNIFIED_AUDIT_TRAIL に新しい列SOURCE が導入され、監査レコードの発行元を簡単に区別できるようになりました。の新しい列は、ADG からの冗長な監査レコード収集を回避するのに役立ちます。

図は、統合監査証跡に書き込まれる監査データを含む Oracle データベースを示しています。 その監査証跡に対して 2 つのクエリが実行されています。1 つは DATABASE と等しい SOURCE (AUD$UNIFIED テーブルに書き込まれるレコード) に基づくクエリ フィルターで、もう 1 つは FILE と等しい SOURCE (外部スピルオーバー ファイルに書き込まれるレコード) に基づくクエリ フィルターです。

図 1: 監査レコードの発行元を区別するための SOURCE 列を備えた統合監査証跡

UIFIED_AUDIT_TRAILビューのSOURCE列の値を利用すると、Data Safeは単一のプライマリ・データベースと複数のスタンバイ・データベースを複数の総合監査証跡を持つ単一のターゲットとしてADG構成全体を監視できるようになります。ADG内のプライマリ・データベース(ロールベースのデータベース・サービスでシステムが生成したフェイルオーバー接続文字列によって識別される)には、SOURCEをDATABASEに設定してUNIFIED_AUDIT_TRAILビューを問い合わせることにより、AUDSYS.AUD$UNIFIED表から収集する監査証跡を見ることができます。

以下は、1つのプライマリ・データベースと2つのスタンバイ・データベースを備えた、ADGの監視構成の例です。

図は、2 つの Active Data Guard スタンバイ データベースを持つプライマリ データベースを示しています。 データベース アクティビティの監視は 4 つの監査証跡を使用して実行されます。 1 つはプライマリに移動し、source=database で統合監査証跡を調べ、さらに 3 つの監査証跡 (データベースごとに 1 つ、プライマリと両方のスタンバイ) は、source=file で統合監査証跡内のレコードを探します。

図2: 複数の統合監査証跡を備えた単一ターゲットとしてのADGのデータベース・アクティビティ監視

プライマリをADGピアとともにData Safeにデータベース・ターゲットとして登録すると、関連付けられた監査プロファイルには、メタデータから自動的に検出された複数の監査証跡の詳細が含まれます。以下の例のように、監査証跡には監査レコードのソースを識別するためのインジケーター (ファイルまたはテーブル) が含まれます。

Screen shot of a Data Safe target database's Audit Profile page showing there are three audit trails - one table-based (source=database) and two file-based (source=file)
図3: Data Safeの複数の統合監査証跡を備えた単一のADGターゲットの監査プロファイル

Data Safeでの統合監査レコードの収集は、対応する監査証跡を開始すると開始され、監査レポートにはプライマリ・データベースとスタンバイ・データベースからのADGターゲットの監査イベントが表示されます。

ここでは、ADG ターゲットのログイン・アクティビティ・レポートのサンプルを、プライマリ・データベースとスタンバイ・データベースの両方からの監査イベントとともに示しています。データベースの一意の名前を使用すると、監査イベントがトリガーされた ADGターゲット内の特定のデータベースにアクティビティを関連付けることができます。

Active Data Guardのプライマリおよびスタンバイの監査アクティビティのスクリーンショット

図4: すべてのデータベースからの監査イベントを示すADGターゲットのData Safeの監査レポート

まとめると、Data SafeはADG構成内の全てのOracle Databaseを、複数の統合監査証跡を備えた単一のターゲットとして、データベース・アクティビティの監視する機能を1つの画面で提供します。

詳細についてはこの動画のデモをご覧ください:Monitoring database activity of Oracle Active Data Guard

参考情報