自動管理

  • 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プロシージャで
  • 自動UNDO保存チューニング
    • デフォルトで実行時間が最長の問合せとUNDO生成率などのデータベース統計を収集
    • UNDO_MANAGEMENT=AUTO
    • UNDO_RETENTIONを自動チューニング
    • UNDO_RETENTIONを0以外に設定すれば、最小値として扱われる
  • 自動チェックポイントチューニング
    • FAST_START_MTTR_TARGET初期化パラメタ が 設定されていないか0より大きい値で有効
    • 0にすると無効