10gがもたらす福音(2)〜AWR。
本日は自動ワークリポジトリについて。
AWRとは、自己チューニング等を目的に定期的に収集された
情報のこと。
収集される統計情報のレベルはSTATISTICS LEVEL
パラメータによって異なる。
BASIC…統計情報は収集しない
TYPICAL…デフォルト。通常必要とされる統計を収集する
ALL…取得可能な統計を全て収集する。
AWRは、
1メモリー内の統計情報
2永続的に保管するスナップショット
で構成されている。
1にはASH(ActiveSessionHistory)という名前のバッファが
あり、1秒間に1回の頻度で、最新の情報が保存されている。
このバッファは循環して使用されるため、満杯になると
MMNL(ManageabilityMonitorLight)によって、ディスクに
書き出される。
書き出された情報は最終的にAWRスナップショットに
マージされる。
2については、MMON(ManageabilityMonitor)が必要な
情報を取捨して保管したものである。
デフォルトでは、60分に1回、MMONによって、
SYSAUX表領域に保存される。
手動でスナップショットを作成することもできる。
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT
AWRスナップショットのベースラインの作成。
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
start_snap_id => 100 --最初のスナップショット番号
end_snap_id => 101 --最後のスナップショット番号
baseline_name => 'base01' --ベースライン名
)
ベースラインとは、AWRの保存期間がデフォルトで7日間のため、
パージされてしまわないように、別途保管しておく
スナップショットのことである。
AWRスナップショットの確認するためのスクリプトは次のとおり。
$ORACLE_HOME/rdbms/admin/awrrpt.sql
このSQLを実施することで、テキストまたはHTML形式のレポート
を作成することができる。
AWRスナップショットの保存期間や、取得間隔を調整する
プロシージャ。
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
retention => 1440 --保存期間。分指定。
interval => 60 --取得間隔。分指定。
)
retentionに0を指定すると…
自動的に削除されることはなくなる。
SYSAUX表領域の空きが不足すると、最も古いAWRスナップショットから
削除される。
intervalに0を指定すると…
自動取得されなくなる。
スナップショットの設定確認→DBA_HIST_WR_CONTROL