対応バージョン
Oracle Database 10.2 – 12.1
更新履歴
| 日付 | 更新概要 |
|---|---|
| 2015/01/15 | 記事公開 |
| 2017/01/29 | レポートの出力とスナップショットの取得を統合 |
AWR(Automatic Workload Repository/自動ワークロード・リポジトリ)のレポート出力、スナップショット取得及び削除の方法について記載いたします。レポートの出力とスナップショットの取得という名前が紛らわしく感じるため統合しました。
また、AWRレポートを出力するために、シェル化を行ったものを以下に公開しております。
シェル-AWRレポート出力
AWRレポートの出力
インスタンスのAWRレポート出力
以下にAWRレポート出力方法の例を示します。
# su - oracle
$ sqlplus / as sysdba
SQL> @?/rdbms/admin/awrrpti.sql
-- レポートの出力形式を指定します。(html/text)
Enter value for report_type: text
-- 出力対象のdbidを指定します。
Enter value for dbid: 3309173529
-- 出力対象のインスタンス番号を指定します。
Enter value for inst_num: 1
-- スナップショットIDをリストする日数を指定します。
Enter value for num_days: 2
-- レポート化対象の開始スナップショットIDを指定する
Enter value for begin_snap: 150
-- レポート化対象の終了スナップショットIDを指定する
Enter value for end_snap: 160
-- レポート名を入力します。何も入力しない場合、デフォルトのレポート名となります。
Enter value for report_name:
実際のフルパスに変更することでも実行できます。
Oracle RAC全体のAWRレポート出力
Oracle RAC全体のレポートを出力する場合は以下のSQLを実行します。
ファイル名はawrgrpti.sqlとなり、gがついています。
SQL> @?/rdbms/admin/awrgrpti.sql
SQLレポート出力
特定のSQLに対するレポートを出力する場合は、以下のSQLを実行します。
SQL> @?/rdbms/admin/awrsqrpt.sql
ASHレポート出力
ASH(Active Session History:待機発生状況の履歴)レポートを出力する場合は、以下のSQLを実行します。
SQL> @?/rdbms/admin/ashrpti.sql
Enter value for inst_num: ALL
ASHレポートはAWRレポートに現れない、短い期間のパフォーマンスの分析に使用します。
ASHの詳細についてはマニュアルを参照してください。
5.1.1.3 アクティブ・セッション履歴
https://docs.oracle.com/cd/E16338_01/server.112/b56312/autostat.htm#i35568
5.3.8 アクティブ・セッション履歴レポートの生成
https://docs.oracle.com/cd/E16338_01/server.112/b56312/autostat.htm#CHDIDEDG
AWRのスナップショット取得及び削除
AWRスナップショットの取得
以下のSQLを実行することでAWRスナップショットを取得(作成)します。
デフォルトの場合、自動で1時間に1回スナップショットが取得されています。
$ sqlplus / as sysdba
SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
AWRスナップショットIDの確認
保存されているスナップショットのスナップショットIDおよび日時を確認します。
SQL> select dbid from v$database;
SQL> select dbid, snap_id, to_char(end_interval_time, 'yyyy/mm/dd hh24:mi') getsnapshot_time, snap_level
2 from DBA_HIST_SNAPSHOT order by dbid, snap_id;
AWRスナップショットの削除
dbidが3310949047のスナップショットID 22から32を削除する例を示します。
削除したいスナップショットの日付と時間の確認は、上記のAWRスナップショットIDの確認から行うことができます。
SQL> exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22, high_snap_id => 32, dbid => 3310949047);
