「[Oracle] 使えるけど使ってはならない機能 」で触れたように、Oracle 10g には AWR や ADDM や ASH など、機能としては使えるけど、ライセンスを購入していなければ使ってはならないという機能が存在します。
故に、ユーザーはライセンスがない場合にこれらの機能を誤って使ってしまわないよう気をつけなければならないわけですが、実はこれらの機能の一部は、Oracle をインストールすると勝手に動いています。
例えば、AWR はデフォルトで 1時間に 1回、AWRスナップショットを作成していますし、ASH はデフォルトで 1秒間に 1回、アクティブなセッションの情報を記録しています。
ライセンスを購入していない場合はこれらの機能をわざわざ止めなくてはならないのでしょうか?
しかし、ライセンスを購入していない場合はこれらの機能を止める機能も使えないはずですので止めることもできません。
うーん、何だか思考がデッドロックしています。
どうしたらいいんでしょうねぇ?
おそらく、これらの機能が動作しているのは、自動共有メモリ管理や自動UNDO管理などの機能が内部的にこれらの機能を使用しているためではないかと思われ、勝手に動いている分については放置プレイで問題ないと思うのですが...
ただ、勝手に動いている分についてはライセンス上問題ないとしても、AWR や ASH を自発的に使用することができないことに変わりはありません。
故に、AWR や ASH が使用できない環境において定常的にパフォーマンス分析を行えるようにするためには、従来の方法で分析に必要な基礎データを収集する必要があります。
つまり、Statspack のスナップショットを 1時間ごとに作成したり、V$SESSION や V$SESSION_WAIT の情報を数秒ごとに収集したりして、問題発生時にさかのぼって分析できるよう備えておくわけです。
すると結局、AWR や ASH が勝手にやっていることと同じことを二重にやることになってしまうんですよね...
Statspack で AWRスナップショットが利用できるようにするとか、ASHに関するビューだけは参照できるようにするとかしてくれれば無駄なリソースの消費が抑えられるんですが...