AWRスナップショット間隔と保存期間の設定
2016-03-20
対応バージョン
Oracle Database 10.2 - 12.1
2017-01-29レポートの出力とスナップショットの取得を統合
2015-01-15記事公開
AWR(Automatic Workload Repository/自動ワークロード・リポジトリ)のレポート出力、スナップショット取得及び削除の方法について記載いたします。レポートの出力とスナップショットの取得という名前が紛らわしく感じるため統合しました。
また、AWRレポートを出力するために、シェル化を行ったものを以下に公開しております。
シェル-AWRレポート出力
以下にAWRレポート出力方法の例を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 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全体のレポートを出力する場合は以下のSQLを実行します。
ファイル名はawrgrpti.sqlとなり、gがついています。
1 |
SQL> @?/rdbms/admin/awrgrpti.sql |
特定のSQLに対するレポートを出力する場合は、以下のSQLを実行します。
1 |
SQL> @?/rdbms/admin/awrsqrpt.sql |
ASH(Active Session History:待機発生状況の履歴)レポートを出力する場合は、以下のSQLを実行します。
1 |
SQL> @?/rdbms/admin/ashrpti.sql |
ASHレポートはAWRレポートに現れない、短い期間のパフォーマンスの分析に使用します。
ASHの詳細についてはマニュアルを参照してください。
5.1.1.3 アクティブ・セッション履歴
http://docs.oracle.com/cd/E16338_01/server.112/b56312/autostat.htm#i35568
5.3.8 アクティブ・セッション履歴レポートの生成
http://docs.oracle.com/cd/E16338_01/server.112/b56312/autostat.htm#CHDIDEDG
以下のSQLを実行することでAWRスナップショットを取得(作成)します。
デフォルトの場合、自動で1時間に1回スナップショットが取得されています。
1 2 |
$ sqlplus / as sysdba SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); |
保存されているスナップショットのスナップショットIDおよび日時を確認します。
1 2 3 |
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; |
dbidが3310949047のスナップショットID 22から32を削除する例を示します。
削除したいスナップショットの日付と時間の確認は、上記のAWRスナップショットIDの確認から行うことができます。
1 |
SQL> exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 22, high_snap_id => 32, dbid => 3310949047); |