Amazon Relational Database Service
ユーザーガイド (API バージョン 2014-10-31)

Oracle Database のログファイル

Amazon RDS コンソールまたは API を使用して、Oracle のアラートログ、監査ファイル、トレースファイルにアクセスできます。ファイルベースのデータベースログの表示、ダウンロード、監視の詳細については、「Amazon RDS データベースログファイル」を参照してください。

提供される Oracle の監査ファイルは、標準の Oracle 監査ファイルです。Amazon RDS は、Oracle の Fine-Grained Auditing (FGA) 機能をサポートしています。ただし、ログアクセスは、SYS.FGA_LOG$ テーブルに保存された FGA イベントと DBA_FGA_AUDIT_TRAIL ビューからアクセス可能な FGA イベントへのアクセスを提供しません。

DB インスタンスの使用可能な Oracle ログファイルを一覧表示する DescribeDBLogFiles API アクションでは、MaxRecords パラメーターが無視され、最大 1,000 件のレコードが返されます。

保持期間スケジュール

Oracle データベースエンジンでは、ログファイルは巨大になるとローテーションされる場合があります。監査ファイルまたはトレースファイルを保持するには、まずダウンロードします。ファイルをローカルに保存すると、Amazon RDS ストレージのコストが減り、データに使用できる領域が増えます。

以下に、Oracle のアラートログ、監査ファイル、トレースファイルの Amazon RDS への保持期間スケジュールを示します。

ログのタイプ 保持期間スケジュール

アラートログ

テキストアラートログは、Amazon RDS による管理の 30 日の保持で毎日ローテーションされます。XML アラートのログは 7 日間以上保存されます。ALERTLOG ビューを使用してこのログにアクセスできます。

監査ファイル

監査ファイルのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過した監査ファイルを削除する場合があります。

トレースファイル

トレースファイルのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過したトレースファイルを削除する場合があります。

リスナーログ

リスナーログのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過したリスナーログを削除する場合があります。

注記

監査ファイルと追跡ファイルは同じ保持設定を共有します。

オンラインログファイルを切り替える

Amazon RDS の手順 rdsadmin.rdsadmin_util.switch_logfile を使用して、オンラインログファイルを切り替えることができます。詳細については、「オンラインログファイルを切り替える」を参照してください。

アーカイブ REDO ログを取得する

アーカイブされた REDO ログは保持することができます。詳細については、「アーカイブされた REDO ログの保持」を参照してください。

Oracle トレースファイルを使用する

トレース ファイルを作成、更新、アクセス、削除する Amazon RDS の手順の説明を以下に示します。

ファイルを一覧表示する

2 つのうちいずれかの手順を使用して、background_dump_dest パスのあらゆるファイルへのアクセスを許可できます。最初の手順では、background_dump_dest 内の最新のファイルのリストをすべて含むビューを更新します。

exec rdsadmin.manage_tracefiles.refresh_tracefile_listing;

ビューが更新されたら、以下のビューを使用して結果にアクセスします。

rdsadmin.tracefile_listing

2 つ目の方法では、FROM table を使用し、表のような形式で表のデータではないデータをストリーミングして、DB ディレクトリの内容を一覧表示します。

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP'));

以下のクエリでは、ログファイルのテキストを表示しています。

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_xxx.log'));

トレースファイルとトレースセッションを生成する

alter session には制限がないことから、Oracle でトレースファイルを生成するための多くの標準的な方法は、Amazon RDS DB インスタンスにも使用できます。以下に、より高度なアクセス許可の必要なトレースファイル用の手順を示します。

Oracle での方法 Amazon RDS での方法

oradebug hanganalyze 3

exec rdsadmin.manage_tracefiles.hanganalyze;

oradebug dump systemstate 266

exec rdsadmin.manage_tracefiles.dump_systemstate;

Amazon RDS の Oracle DB インスタンスに接続する個々のセッションをトレースするには、複数の方法を使用できます。セッションのトレースを有効にするには、DBMS_SESSION や DBMS_MONITOR パッケージなど、Oracle が提供する PL/SQL パッケージのサブプログラムを実行できます。詳細については、Oracle ドキュメントの Enabling Tracing for a Session を参照してください。

トレースファイルを取得する

Amazon RDS で管理される外部テーブルの標準的な SQL クエリを使用して、background_dump_dest 内の任意のトレースファイルを取得できます。この方法を使用するには、このテーブルの場所として特定のトレースファイルを設定するプロシージャを実行する必要があります。

たとえば、前述の rdsadmin.tracefile_listing ビューを使用して、システムのすべてのトレースファイルを一覧表示できます。その後、以下のプロシージャを使用して、目的のトレースファイルを参照するように tracefile_table ビューを設定できます。

exec rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');

以下の例では、外部テーブルを最新のスキーマで作成し、このテーブルの場所として特定のファイルを設定しています。内容は、SQL クエリを使用してローカルファイルに取得できます。

# eg: send the contents of the tracefile to a local file: sqlplus user/password@TNS alias << EOF > /tmp/tracefile.txt select * from tracefile_table; EOF

トレースファイルを消去する

トレースファイルが蓄積されて、ディスク領域を消費することがあります。Amazon RDS では、7 日を経過したトレースファイル (デフォルト) とログファイルは消去されます。show_configuration プロシージャを使用してトレースファイルの保持期間を表示および設定できます。設定の結果を表示できるように、コマンド SET SERVEROUTPUT ON を実行する必要があります。

以下の例では、現在のトレースファイルの保持期間を表示し、新しいトレースファイルの保持期間を設定しています。

# Show the current tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> exec rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); #show the new tracefile retention SQL> exec rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.

定期的な消去プロセスに加えて、background_dump_dest から手動でファイルを削除することもできます。以下の例では、5 分を経過したすべてのファイルを消去しています。

exec rdsadmin.manage_tracefiles.purge_tracefiles(5);

特定のパターンと一致するすべてのファイルを消去することもできます (.trc などのファイル拡張子を含めないでください)。次の例は、SCHPOC1_ora_5935 で始まるすべてのファイルを消去する方法を示しています。

exec rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');

Amazon CloudWatch Logs への Oracle ログの発行

Amazon RDS Oracle DB インスタンスを設定して、ログデータを Amazon CloudWatch Logs のロググループに発行することができます。CloudWatch Logs を使用すると、ログデータの分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性が高いストレージにログレコードを格納できます。

Amazon RDS は、Oracle データベースログを、ロググループの別のデータストリームとしてそれぞれ発行します。たとえば、エクスポート機能を設定して、監査ログを作成すると、監査データは、/aws/rds/instance/my_instance/audit ロググループの監査ログストリームに保存されます。

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して CloudWatch Logs にログを発行できます。

AWS マネジメントコンソール を使用して CloudWatch Logs にログを発行する

コンソールから CloudWatch Logs に Oracle DB ログを発行するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

  2. ナビゲーションペインで [Instances] (インスタンス) を選択し、変更する DB インスタンスを選択します。

  3. [インスタンスの操作] で、[変更] を選択します。

  4. [ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。

  5. [続行] を選択し、概要ページで [Modify DB Instance] (DB インスタンスの変更) を選択します。

AWS CLI を使用して CloudWatch Logs にログを発行する

Oracle ログは、AWS CLI を使用して発行することができます。以下のパラメータを使用して、modify-db-instance コマンドを呼び出せます。

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

  • --apply-immediately

以下の AWS CLI コマンドを呼び出すことで Oracle ログを発行することもできます。

以下のオプションでこの AWS CLI コマンドの 1 つを実行します。

  • --db-instance-identifier

  • --enable-cloudwatch-logs-exports

  • --db-instance-class

  • --engine

実行する AWS CLI コマンドに応じて、他のオプションが必要となる場合があります。

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう既存の Oracle DB インスタンスを変更します。

Linux、OS X、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener"]}' \ --apply-immediately

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener"]}' ^ --apply-immediately

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう Oracle DB インスタンスを作成します。

Linux、OS X、Unix の場合:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["trace","audit","alert","listener"]' \ --db-instance-class db.m1.small \ --engine oracle-se1

Windows の場合:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports '["trace","audit","alert","listener"]' ^ --db-instance-class db.m1.small ^ --engine oracle-se1

次のコマンドでは、CloudWatch Logs への監査およびリスナーログファイルの発行が無効になるよう既存の Oracle DB インスタンスを変更します。

Linux、OS X、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}' \ --apply-immediately

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}' ^ --apply-immediately
RDS API を使用して CloudWatch Logs にログを発行する

Oracle DB ログは、RDS API を使用して発行することができます。以下のパラメータを使用して、ModifyDBInstance アクションを呼び出せます。

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

  • ApplyImmediately

以下の RDS API アクションを呼び出すことで Oracle ログを発行することもできます。

以下のパラメータでこの RDS API アクションの 1 つを実行します。

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

実行する AWS CLI コマンドに応じて、他のパラメータが必要となる場合があります。

アラートログとリスナーログにアクセスするための以前の方法

Amazon RDS コンソールを使用してアラートログを表示できます。次の SQL ステートメントを使用してアラートログにアクセスすることもできます。

select message_text from alertlog;

リスナーログにアクセスするには、次の SQL ステートメントを使用します。

select message_text from listenerlog;

注記

Oracle では、アラートログとリスナーログは 10 MB を超えるとローテーションされます。その時点で、Amazon RDS のビューからは使用できなくなります。