OracleDB

OracleDBの自動メンテナンスタスクの有効・無効・スケジュール・実行履歴の確認方法

2018年8月9日

こんにちは!土門大貴(daikidomon)です。

OracleDatabaseの「自動メンテナンスタスク」の確認方法について紹介します。

自動メンテナンスタスクはデータベースのメンテナンス操作を一定間隔毎に自動的に行う機能です。

デフォルトでは有効化されており、システムの負荷が軽いと予測される時間帯に実行されますが、

個々のメンテナンスタスクをいつ動いているか確認してみましょう。

なお、以下が自動メンテナンスタスクの設定手順になります。

OracleDBの自動メンテナンスタスクの有効・無効・スケジュール変更手順

こんにちは!土門大貴(daikidomon)です。 OracleDatabaseの「自動メンテナンスタスク」の確認方法に ...

続きを見る

自動メンテナンスタスクとは?

自動メンテナンスタスクには3つの機能があり、それぞれの役割は以下になります。

タスク名説明
自動オプティマイザ統計収集データベースオブジェクトに対する統計情報を自動的に収集する機能。
自動セグメント・アドバイザ再生可能な領域が存在しているセグメントを識別し、それらのセグメントの断片化を解消する方法について推奨する機能
自動SQLチューニング・アドバイザ高負荷のSQL文のパフォーマンスを調査し、それらの文のチューニング方法について推奨する機能

なお自動メンテナンスタスクを使用するためには別途追加ライセンスが発生します。

自動メンテナンスタスクの有効・無効確認

自動メンテナンスタスクの有効・無効を確認するのは「DBA_AUTOTASK_CLIENT」ビューを確認しましょう。

set line 200
col CLIENT_NAME for a50
col STATUS for a7
select CLIENT_NAME
,STATUS
from DBA_AUTOTASK_CLIENT;

以下、実行のサンプルです。

> set line 200
> col CLIENT_NAME for a50
> col STATUS for a7
> select CLIENT_NAME
2 ,STATUS
3 from DBA_AUTOTASK_CLIENT;

CLIENT_NAME STATUS
-------------------------------------------------- -------
sql tuning advisor ENABLED
auto optimizer stats collection ENABLED
auto space advisor ENABLED

参考DBA_AUTOTASK_CLIENT

自動メンテナンスタスクのスケジュール確認

自動メンテナンスタスクのスケジュールを確認するのは「DBA_SCHEDULER_WINDOWS」ビューと「DBA_AUTOTASK_WINDOW_CLIENTS」ビューを確認しましょう。

set line 300
col WINDOW_NAME for a20
col REPEAT_INTERVAL for a70
col DURATION for a15
col ENABLED for a7
col AUTOTASK_STATUS for a15
col OPTIMIZER_STATS for a15
col SEGMENT_ADVISOR for a15
col SQL_TUNE_ADVISOR for a16
select s.WINDOW_NAME
,s.REPEAT_INTERVAL
,s.DURATION
,s.ENABLED
,a.AUTOTASK_STATUS
,a.OPTIMIZER_STATS
,a.SEGMENT_ADVISOR
,a.SQL_TUNE_ADVISOR
from DBA_SCHEDULER_WINDOWS s,
DBA_AUTOTASK_WINDOW_CLIENTS a
where s.WINDOW_NAME = a.WINDOW_NAME(+);

以下、実行のサンプルです。

> set line 300
> col WINDOW_NAME for a20
> col REPEAT_INTERVAL for a70
> col DURATION for a15
> col ENABLED for a7
> col AUTOTASK_STATUS for a15
> col OPTIMIZER_STATS for a15
> col SEGMENT_ADVISOR for a15
> col SQL_TUNE_ADVISOR for a16
> select s.WINDOW_NAME
2 ,s.REPEAT_INTERVAL
3 ,s.DURATION
4 ,s.ENABLED
5 ,a.AUTOTASK_STATUS
6 ,a.OPTIMIZER_STATS
7 ,a.SEGMENT_ADVISOR
8 ,a.SQL_TUNE_ADVISOR
9 from DBA_SCHEDULER_WINDOWS s,
10 DBA_AUTOTASK_WINDOW_CLIENTS a
11 where s.WINDOW_NAME = a.WINDOW_NAME(+);

WINDOW_NAME REPEAT_INTERVAL DURATION ENABLED AUTOTASK_STATUS OPTIMIZER_STATS SEGMENT_ADVISOR SQL_TUNE_ADVISOR
-------------------- ---------------------------------------------------------------------- --------------- ------- --------------- --------------- --------------- ----------------
SATURDAY_WINDOW freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0 +000 20:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
THURSDAY_WINDOW freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
TUESDAY_WINDOW freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
MONDAY_WINDOW freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
WEDNESDAY_WINDOW freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
FRIDAY_WINDOW freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
SUNDAY_WINDOW freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0 +000 20:00:00 TRUE ENABLED ENABLED ENABLED ENABLED
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

参考DBA_AUTOTASK_WINDOW_CLIENTS
参考DBA_SCHEDULER_WINDOWS

自動メンテナンスタスクの実行履歴確認

自動メンテナンスタスクのスケジュールを確認するのは「DBA_AUTOTASK_JOB_HISTORY」ビューを確認しましょう。

set line 200
set pages 20
col CLIENT_NAME for A33
col WINDOW_NAME for A20
col WINDOW_START_TIME for A20
col JOB_START_TIME for A30
col JOB_DURATION for A20
col JOB_DURATION_HMS for A12
select CLIENT_NAME
, WINDOW_NAME
, TO_CHAR(WINDOW_START_TIME, 'YYYY/MM/DD HH24:MI:SS') as WINDOW_START_TIME
, TO_CHAR(JOB_START_TIME, 'YYYY/MM/DD HH24:MI:SS.FF') as JOB_START_TIME
, LPAD(EXTRACT(HOUR from JOB_DURATION), 2, '0') || ':' ||
LPAD(EXTRACT(MINUTE from JOB_DURATION), 2, '0') || ':' ||
LPAD(EXTRACT(SECOND from JOB_DURATION), 2, '0') as JOB_DURATION_HMS
from DBA_AUTOTASK_JOB_HISTORY
order BY CLIENT_NAME
, JOB_START_TIME;

以下、実行のサンプルです。

> set line 200
> set pages 20
> col CLIENT_NAME for A33
> col WINDOW_NAME for A20
> col WINDOW_START_TIME for A20
> col JOB_START_TIME for A30
> col JOB_DURATION for A20
> col JOB_DURATION_HMS for A12
> select CLIENT_NAME
2 , WINDOW_NAME
3 , TO_CHAR(WINDOW_START_TIME, 'YYYY/MM/DD HH24:MI:SS') as WINDOW_START_TIME
4 , TO_CHAR(JOB_START_TIME, 'YYYY/MM/DD HH24:MI:SS.FF') as JOB_START_TIME
5 , LPAD(EXTRACT(HOUR from JOB_DURATION), 2, '0') || ':' ||
6 LPAD(EXTRACT(MINUTE from JOB_DURATION), 2, '0') || ':' ||
7 LPAD(EXTRACT(SECOND from JOB_DURATION), 2, '0') as JOB_DURATION_HMS
8 from DBA_AUTOTASK_JOB_HISTORY
9 order BY CLIENT_NAME
10 , JOB_START_TIME;

CLIENT_NAME WINDOW_NAME WINDOW_START_TIME JOB_START_TIME JOB_DURATION
--------------------------------- -------------------- -------------------- ------------------------------ ------------
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/29 23:39:28.047828 00:01:44
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 00:47:37.030659 00:00:25
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 00:57:38.571153 00:00:12
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:07:40.130112 00:00:25
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:17:40.556757 00:00:12
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:27:41.432096 00:00:19
auto optimizer stats collection SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:37:42.270000 00:00:16
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/29 23:39:28.144160 00:00:03
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 00:47:37.157128 00:00:03
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 00:57:38.571168 00:00:02
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:07:40.250932 00:00:03
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:17:40.679245 00:00:02
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:27:41.554395 00:00:03
auto space advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/30 01:37:42.286383 00:00:03
sql tuning advisor SUNDAY_WINDOW 2018/07/29 23:39:20 2018/07/29 23:39:28.147503 00:00:02

関連記事

-OracleDB

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.