自由気ままに書いちゃおう

好きなことをつらつらと・・・

OracleDatabase12.2の自動メンテナンスについて

Oracleド素人のため勉強中なのですが、備忘を兼ねて記載致します。
※どのくらい素人かというと、sys , system ユーザの違いがわからなかったり、インスタンスって何?っていうぐらいです。笑

 

■環境について

OracleDatabae12 release2 ※手元にこれしかなかった。。。

Windows 10

■自動メンテナンスについて

データベースのメンテナンスを実施する際、何をどうメンテナンスしたらよいかわからないことがあります。
その際、OracleDatabaseがいい感じに定期的にメンテナンスしてくれるのが、
自動メンテナンス機能です。

■自動メンテナンスの種類について

デフォルトでは以下の3種類です。

①自動オプティマイザ統計収集(auto optimizer stats collection)

データベースオブジェクトに対する統計情報を自動的に収集する機能です。

②自動セグメントアドバイザ(auto space advisor)

再生可能な領域が存在しているセグメントを識別し、
それらのセグメントの断片化を解消する方法について推奨する機能です。

③SQLチューニング・アドバイザ(sql tuning advisor)

高負荷のSQL文のパフォーマンスを調査し、それらの文のチューニング方法について推奨する機能です。

■自動メンテナンスの実行タイミングについて

3種類の自動メンテナンスとも、
「Windowグループ」と呼ばれる単位でスケジュールが設定されています。
「Windowグループ」は「Window名」と呼ばれるものの集合体です。

少しややっこしいのですが、Window名(後述しますが、MONDAY_WINDOWとか)ごとに、どの自動メンテナンスが有効/無効になっているかを設定しております。

デフォルトのWindow名の設定は以下の通りです。

     select * from DBA_AUTOTASK_WINDOW_CLIENTS;  

f:id:guri2o1667:20200610154001p:plain
各列の意味は以下の通りです。

f:id:guri2o1667:20200610160537p:plain

①自動オプティマイザ統計収集(auto optimizer stats collection)

Windowグループ: ORA$AT_WGRP_OS

デフォルト設定:

     select * from DBA_SCHEDULER_WINDOW_GROUPS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_OS';   

f:id:guri2o1667:20200610152600p:plain

Window名: MONDAY_WINDOW ~ SUNDAY_WINDOW の7つ

デフォルト設定:

    select * from DBA_SCHEDULER_WINGROUP_MEMBERS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_OS';  

f:id:guri2o1667:20200610153207p:plain



②自動セグメントアドバイザ(auto space advisor)

Windowグループ: ORA$AT_WGRP_SA


デフォルト設定:

    select * from DBA_SCHEDULER_WINDOW_GROUPS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_SA';  

f:id:guri2o1667:20200610152719p:plain

Window名: MONDAY_WINDOW ~ SUNDAY_WINDOW の7つ

デフォルト設定:

    select * from DBA_SCHEDULER_WINGROUP_MEMBERS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_SA';  

f:id:guri2o1667:20200610153300p:plain

③SQLチューニング・アドバイザ(sql tuning advisor)

Windowグループ: ORA$AT_WGRP_SQ


デフォルト設定:

f:id:guri2o1667:20200610153353p:plain

    select * from DBA_SCHEDULER_WINDOW_GROUPS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_SQ';  

f:id:guri2o1667:20200610152805p:plain

Window名: MONDAY_WINDOW ~ SUNDAY_WINDOW の7つ

デフォルト設定:

    select * from DBA_SCHEDULER_WINGROUP_MEMBERS where WINDOW_GROUP_NAME = 'ORA$AT_WGRP_SQ';  



以上です。