AWRスナップショットの取得間隔と保存期間の設定変更


OCIに移行した際にスナップショットの設定を変更したので、そのまとめ。

前提

OCIにてAWRは自動でスナップショットを取得する様になっているが、
取得間隔と保存期間はデフォルトでは以下の様に設定されている。

項目 設定
取得間隔 1時間
保存期間 8日

上記の設定を変更するには、「DBMS_WORKLOAD_REPOSITORY」プロシージャを使用する。
設定する際の時間の単位はいずれも「分」単位であることに注意。

EXECUTE DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  interval  =>  60,
  retention =>  20160);

実行例

以下実行例ではプロシージャを使用して取得間隔=30分、保存期間を40日(60min*24h*40day=57,600min)に設定する。

SQL> set lines 180 pages 10000
SQL> col SNAP_INTERVAL for a30
SQL> col RETENTION for a30
SQL> select snap_interval, retention from DBA_HIST_WR_CONTROL;

SNAP_INTERVAL                  RETENTION
------------------------------ ------------------------------
+00000 01:00:00.0              +00008 00:00:00.0

SQL>
SQL> exec DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 30, retention => 57600);

PL/SQLプロシージャが正常に完了しました。

SQL>
SQL> select snap_interval, retention from DBA_HIST_WR_CONTROL;

SNAP_INTERVAL                  RETENTION
------------------------------ ------------------------------
+00000 00:30:00.0              +00040 00:00:00.0

SQL>

留意点

スナップショットの取得間隔を短くすれば、AWRにより収集されるデータ量が増加するため、
取得間隔を短くするほど、SYSAUX表領域の使用率は増える。
マニュアル曰く
「デフォルトでは、スナップショットは1時間に1回取得され、データベースに8日間保存されます。
これらのデフォルト設定では、同時アクティブ・セッション数が平均10の標準的なシステムの場合、
AWRデータ用に約200から300MBの領域が必要になる可能性があります。」
ということなので、やみくもに短くするのではなく、
しっかりと検証した上で設定しないと痛い目を見ることもあり得る。

参考

Oracle Database PL/SQLパッケージおよびタイプ・リファレンス 11g リリース2(11.2)
Oracle Databaseパフォーマンス・チューニング・ガイド 11gリリース2 (11.2)