自動管理
- ADDM(Automatic Database Diagnostic Monitor)
- 問題の診断と推奨事項の生成のみ→実際の処置は、SQLチューニングアドバイザ、SQLアクセスアドバイザなどのコンポーネントに任せる
- 2つのAWRスナップショット間の問題点を診断
- 診断結果はAWRに格納
- 実行結果はEMのADDMページ、DBMS_ADVISORパッケージ、addmrpt.sqlスクリプトから確認できる
- 実行間隔はデフォルト60分
- MMONにより60分間隔でスナップショットが取られる
- スナップショットが取られると最後の2つのスナップショットを使ってADDMが起動するようにスケジュールされている
- 任意の2つのAWRスナップショットを使用して手動で起動することも可能
- EMのページ(10g)
- ホーム
- セントラルアドバイザ
- 自動実行するには
- STATISTICS_LEVEL初期化パラメタ = TYPICAL | ALL
- 自動共有メモリ管理
- MMANが勝手にいい具合にしてくれる
- DB_CACHE_SIZE、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZEは使わなくていい
- 設定してもいい。最低値とみなされる
- SGAの自動調整
- 共有プール(ライブラリキャッシュ、ディクショナリキャッシュ)はあまり減らされない
- バッファキャッシュは減らされがち
- 有効にするには
- SGA_TARGET > 0 に設定(動的パラメタ)
- STATISTICS_LEVEL初期化パラメタ = TYPICAL | ALL
- SGA_MAX_SIZE(SGA最大値)パラメタの設定は任意(静的パラメタ=再起動が必要)
- 無効にすると、各メモリパラメタは現在の値で設定される
- 一回自動にしてみて、無効にすると便利だったりする
- 自動チューニングされた値の確認
- EMのメモリーパラメータページ
- V$SGA_DYNAMIC_COMPONENTSビュー
- SHARED_POOL_SIZEに内部オーバーヘッドが含まれるので注意(10g〜)
- v$sga_info の startup overhead in shared pool行で確認できる
- 例えばオーバーヘッドが32Mで現在値が288Mだったら、実質利用できるのは256Mとなる
- 自動オプティマイザ統計収集
- 10gでは勝手に1日1度統計を収集するようスケジュールされている
- WEEKNIGHT_WINDOW(22:00〜6:00)、WEEKEND_WINDOW(土曜0:00〜月曜0:00)
- デフォルトのWEEKEND_WINDOWは極悪だな
- なんでも統計取られちゃうので、ロックしたい場合
- DBMS_STATS.LOCK_{SCHEMA|TABLE}_STATSプロシージャ
- 手動で統計を取ることを検討したほうが良いのは
- バルクロードによる大量データのロード直後
- 統計収集されないもの:外部表、システム統計、固定オブジェクト
- 統計履歴
- デフォルトで31日分保存されているのでリストア可能
- DBMS_STATS.RESTORE_xxxx_STATSプロシージャで
- 10gでは勝手に1日1度統計を収集するようスケジュールされている
- 自動UNDO保存チューニング
- デフォルトで実行時間が最長の問合せとUNDO生成率などのデータベース統計を収集
- UNDO_MANAGEMENT=AUTO
- UNDO_RETENTIONを自動チューニング
- UNDO_RETENTIONを0以外に設定すれば、最小値として扱われる
- 自動チェックポイントチューニング
- FAST_START_MTTR_TARGET初期化パラメタ が 設定されていないか0より大きい値で有効
- 0にすると無効