メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Oracle Statspack

Oracle Statspack オプションは、Oracle Statspack パフォーマンス統計機能をインストールして有効にします。 Oracle Statspack は、パフォーマンスデータを収集、保存、表示する SQL、PL/SQL、および SQL*Plus スクリプトのコレクションです。Oracle Statspack 使用の詳細には、Oracle ドキュメントの「Oracle Statspack」を参照してください。

注記

Oracle Statspack は、Oracle によるサポートが停止されたため、より高度な自動ワークロードリポジトリ (AWR) に置き換えられました。AWR は、Diagnostics Pack を購入した Oracle Enterprise Edition のお客様だけが使用できます。Oracle Statspack は、Amazon RDS のすべての Oracle DB エンジンで使用できます。

以下のステップは、Amazon RDS で Oracle Statspack を使用する方法を示しています。

  1. オプショングループに Statspack オプションを追加し、そのオプショングループを DB インスタンスと関連付けます。Amazon RDS は、DB インスタンスに Statspack スクリプトをインストールした後、PERFSTAT ユーザーアカウント (Statspack スクリプトの実行に使用するアカウント) をセットアップします。 Statspack をインストール済みの場合は、以下の手順をスキップしてください。

    PERFSTAT アカウントがすでに作成されている既存の DB インスタンスがあり、そのインスタンスで Oracle Statspack を使用する場合、DB インスタンスに関連付けられたオプショングループに Statspack オプションを追加する前に PERFSTAT アカウントを削除する必要があります。すでに PERFSTAT アカウントが作成されている DB インスタンスに関連付けられたオプショングループに Statspack オプションを追加しようとすると、エラーが表示され、RDS イベント RDS-Event-0058 が生成されます。

    PERFSTAT アカウントは、次のコマンドを実行して削除できます。

    Copy
    DROP USER perfstat CASCADE;
  2. Amazon RDS により DB インスタンスに Statspack がインストールされたら、マスターユーザー名とマスターパスワードを使用して DB インスタンスにログインする必要があります。 その後、PERFSTAT パスワードを、Statspack のインストール時に Amazon RDS によって作成されたランダム生成値からリセットします。 PERFSTAT パスワードをリセットしたら、PERFSTAT ユーザーアカウントを使用してログインし、Statspack スクリプトを実行できます。

    パスワードをリセットするには、次のコマンドを使用します。

    Copy
    ALTER USER perfstat IDENTIFIED BY <new_password> ACCOUNT UNLOCK;
  3. PERFSTAT アカウントを使用してログインしたら、Statspack スナップショットを手動で作成するか、一定の時間の後 Statspack スナップショットを取得するジョブを作成できます。たとえば、次のジョブは Statspack スナップショットを 1 時間おきに作成します。

    Copy
    variable jn number; execute dbms_job.submit(:jn, 'statspack.snap;',sysdate,'trunc(SYSDATE+1/24,''HH24'')'); commit;
  4. 少なくとも 2 つの Statspack スナップショットを作成したら、次のクエリを使用して表示できます。

    Copy
    select snap_id, snap_time from stats$snapshot order by 1;
  5. Statspack レポートを作成するには、分析する 2 つのスナップショットを選択し、次の Amazon RDS コマンドを実行します。

    Copy
    exec RDSADMIN.RDS_RUN_SPREPORT(<begin snap>,<end snap>);

    たとえば、次の Amazon RDS コマンドでは、Statspack スナップショット 1 と 7 の間の間隔に基づいてレポートが作成されます。

    Copy
    exec RDSADMIN.RDS_RUN_SPREPORT(1,7);

生成された Statspack レポートのファイル名には、使用する 2 つの Statspack スナップショットの番号が含められます。たとえば、Statspack スナップショット 1 および 7 を使用して作成されたレポートファイルの名前は ORCL_spreport_1_7.lst になります。RDS コンソールの [Log] セクションでレポートを選択して [Download] をクリックすることで、Statspack レポートをダウンロードするか、「Oracle トレースファイルを使用する」で説明されているトレースファイルの手順を使用できます。

レポートの生成時にエラーが発生した場合は、同じ命名規則を使用してエラーファイルが作成されますが、拡張子は .err になります。たとえば、Statspack スナップショット 1 および 7 を使用してレポートを作成するときにエラーが発生した場合、レポートファイルの名前は ORCL_spreport_1_7.err になります。RDS コンソールの [Log] セクションでレポートを選択して [Download] をクリックすることで、エラーレポートをダウンロードするか、「Oracle トレースファイルを使用する」で説明されているトレースファイルの手順を使用できます。

Oracle Statspack は、レポートの実行前に基本的なチェックをいくつか行うため、コマンドプロンプトにエラーメッセージが表示されることもあります。たとえば、無効な範囲に基づいてレポートを生成しようとした場合 (Statspack スナップショットの開始値が Statspack スナップショットの終了値より大きいなど)、エラーメッセージがコマンドプロンプトに表示され、エラーファイルは作成されません。

Copy
exec RDSADMIN.RDS_RUN_SPREPORT(2,1); * ERROR at line 1: ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.

いずれかの Statspack スナップショットに無効な数字を使用した場合、エラーメッセージがコマンドプロンプトにも表示されます。たとえば、Statspack スナップショットが 20 個しかないにもかかわらず、Statspack スナップショット 1 および 50 を使用してレポートを実行するようにリクエストした場合、コマンドプロンプトにエラーが表示されます。

Copy
exec RDSADMIN.RDS_RUN_SPREPORT(1,50); * ERROR at line 1: ORA-20000: Could not find both snapshot IDs

スナップショットレベルを調整することでキャプチャされるデータの量を調整する方法など、Oracle Statspack を使用する方法の詳細については、Oracle の Statspack ドキュメントページを参照してください。

Oracle Statspack ファイルを削除するには、次のコマンドを使用します。

Copy
execute statspack.purge(<begin snap>, <end snap>);

関連トピック

このページの内容: