PR

Oracle 自動メンテナンスタスクの設定と確認方法

スポンサーリンク
ORACLE

Oracle Databaseの自動メンテナンスタスクとは、データベースのメンテナンスを自動的に実施してくれる機能です。

自動メンテナンスタスクには、統計情報の取得、SQLチューニング分析、セグメントアドバイザがあります。

今回はこれらの自動メンテナンスタスクの確認方法を紹介します。

Oracle自動メンテナンスタスクの状態確認

Oracle Database上でどのメンテナンスタスクが有効になっているか、DBA_AUTOTASK_CLIENT ビューを参照すると確認できます。

SQL> select client_name,window_group,status from dba_autotask_client;

CLIENT_NAME                         WINDOW_GROUP         STATUS
----------------------------------- -------------------- --------
sql tuning advisor                  ORA$AT_WGRP_SQ       ENABLED
auto optimizer stats collection     ORA$AT_WGRP_OS       ENABLED
auto space advisor                  ORA$AT_WGRP_SA       ENABLED

デフォルトでは全てのメンテナンスタスクが有効になっていますが、私は基本的に自身でSQLチューニングや監視を行うので“sql tuning advisor”“auto space advisor”はいつも無効化しています。

自動メンテナンスタスクの無効化方法は以下となります。

SQL> BEGIN
  2  DBMS_AUTO_TASK_ADMIN.DISABLE(
  3    client_name => 'sql tuning advisor',
  4    operation => NULL,
  5    window_name => NULL);
  6  DBMS_AUTO_TASK_ADMIN.DISABLE(
  7    client_name => 'auto space advisor',
  8    operation => NULL,
  9    window_name => NULL);
 10  END;
 11  /

PL/SQL procedure successfully completed.

SQL> select client_name,window_group,status from dba_autotask_client;

CLIENT_NAME                         WINDOW_GROUP         STATUS
----------------------------------- -------------------- --------
sql tuning advisor                  ORA$AT_WGRP_SQ       DISABLED
auto optimizer stats collection     ORA$AT_WGRP_OS       ENABLED
auto space advisor                  ORA$AT_WGRP_SA       DISABLED

自動メンテナンスタスクがどのウィンドウに所属しているかを確認

DBA_SCHEDULER_WINGROUP_MEMBERS を参照することで、[auto optimizer stats collection]タスクがどのWINDOWに属しているかが確認できます。

SQL> select window_name, window_group_name from dba_scheduler_wingroup_members
  2  where window_group_name = 'ORA$AT_WGRP_OS';

WINDOW_NAME          WINDOW_GROUP_NAME
-------------------- --------------------
MONDAY_WINDOW        ORA$AT_WGRP_OS
TUESDAY_WINDOW       ORA$AT_WGRP_OS
WEDNESDAY_WINDOW     ORA$AT_WGRP_OS
THURSDAY_WINDOW      ORA$AT_WGRP_OS
FRIDAY_WINDOW        ORA$AT_WGRP_OS
SATURDAY_WINDOW      ORA$AT_WGRP_OS
SUNDAY_WINDOW        ORA$AT_WGRP_OS

メンテナンスウィンドウの確認

DBA_SCHEDULER_WINDOWS を確認することで、それぞれのメンテナンスウィンドウの設定(ウィンドウの起動スケジュール)を確認することが出来ます。

SQL> select window_name,repeat_interval,duration,enabled from dba_scheduler_windows;

WINDOW_NAME          REPEAT_INTERVAL                                                        DURATION             ENABL
-------------------- ---------------------------------------------------------------------- -------------------- -----
MONDAY_WINDOW        freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0                  +000 04:00:00        TRUE
TUESDAY_WINDOW       freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0                  +000 04:00:00        TRUE
WEDNESDAY_WINDOW     freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0                  +000 04:00:00        TRUE
THURSDAY_WINDOW      freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0                  +000 04:00:00        TRUE
FRIDAY_WINDOW        freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0                  +000 04:00:00        TRUE
SATURDAY_WINDOW      freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0                   +000 20:00:00        TRUE
SUNDAY_WINDOW        freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0                   +000 20:00:00        TRUE
WEEKNIGHT_WINDOW     freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0  +000 08:00:00        FALSE
WEEKEND_WINDOW       freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0                    +002 00:00:00        FALSE

9 rows selected.