最近遇到了2个库的AUTOTASK无法自动调度。
总结下AUTOTASK调度的知识点
1.查询当前调度状态
总的调度状态从KET$_AUTOTASK_STATUS中查询,AUTOTASK_STATUS=2为ENABLE,=1为DISABLE
SQL> @pt
Enter value for 1: SELECT * FROM KET$_AUTOTASK_STATUS
old 2: p_query VARCHAR2(4000) := '&1';
new 2: p_query VARCHAR2(4000) := 'SELECT * FROM KET$_AUTOTASK_STATUS ';
-----------------
DUMMY_KEY : 99999
AUTOTASK_STATUS : 2
ABA_STATE : 86
ABA_STATE_TIME : 09-OCT-12 02.00.01.076595 AM +08:00
ABA_OS_PID :
ABA_START_TIME : 17-AUG-12 10.00.01.058358 PM +08:00
MW_NAME : FRIDAY_WINDOW
MW_START_TIME : 17-AUG-12 10.00.00.000000 PM ASIA/SHANGHAI
MW_RECORD_TIME :
INSTANCE_NAME : acct1
RECONCILE_TIME : 09-OCT-12 02.00.01.073409 AM +08:00
-----------------
各个子任务的调度状态,从KET$_CLIENT_CONFIG(DBA_AUTOTASK_CLIENT)中查询,STATUS=2为ENABLE,=1为DISABLE
DBA_AUTOTASK_TASK表为统计信息,STATUS列可以忽略
SQL> @pt
Enter value for 1: SELECT * FROM KET$_CLIENT_CONFIG WHERE CLIENT_ID IN (4,5,6)
old 2: p_query VARCHAR2(4000) := '&1';
new 2: p_query VARCHAR2(4000) := 'SELECT * FROM KET$_CLIENT_CONFIG WHERE CLIENT_ID IN (4,5,6)';
-----------------
CLIENT_ID : 4
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
CLIENT_ID : 5
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
CLIENT_ID : 6
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
另外,可以通过查询dba_autotask_window_clients确认任务在各个时间窗口是否enable
2.AUTOTASK的任务,还是通过scheduler运行的,AUTOTASK的任务就是到时间向scheduler提交JOB运行
对于auto optimizer stats collection,每4小时提交一次scheduler
auto space advisor,每4小时提交一次scheduler
sql tuning advisor,每个WINDOW提交一次
3.每个window中,各个TASK的提交scheduler的次数,通过dba_autotask_client_history查询
每次提交task的时间点,执行状态,执行时间,报错代码通过dba_autotask_job_history查询
查询dba_autotask_window_history,确定时间窗口是否被正常调度
4.dba_autotask_schedule记录autotask未来几天的调度窗口,用于查询下次执行时间
dba_autotask_client_job记录当前正在运行的AUTOTASK任务
5.AUTOTASK既然是提交scheduler运行,那么在scheduler相关视图中也有很多信息
其提交的任务,名称为:统计分析ORA$AT_OS_OPT_SY_%,段建议ORA$AT_SA_SPC_SY_%,SQL调优ORA$AT_SQ_SQL_SW_%
从dba_scheduler_job_log,dba_scheduler_job_run_details也可以查询详细运行信息
6.AUTOTASK虽然是到达时间窗口提交scheduler运行,但是有时候存在异常导致其没有提交scheduler
检查下一次提交scheduler的时间,通过dba_scheduler_window_groups查询
确保只有1个WINDOW是ACTIVE的:select window_name,active from DBA_SCHEDULER_WINDOWS
相关文档:
Scheduled Maintenance Auto Tasks Not Working After 11.2.0.3 Upgrade [ID 1452836.1]
Why Auto Optimizer Statistics Collection May Appear to be "Stuck"? [ID 1320246.1]
7.最后1点,11g开始,scheduler运行受控于job_queue_processes,确保该参数非0。还有MOS上查AUTOTASK相关的信息,要用"auto task",要有空格,“autotask”找不到啥子有价值的东西。。。。
总结下AUTOTASK调度的知识点
1.查询当前调度状态
总的调度状态从KET$_AUTOTASK_STATUS中查询,AUTOTASK_STATUS=2为ENABLE,=1为DISABLE
SQL> @pt
Enter value for 1: SELECT * FROM KET$_AUTOTASK_STATUS
old 2: p_query VARCHAR2(4000) := '&1';
new 2: p_query VARCHAR2(4000) := 'SELECT * FROM KET$_AUTOTASK_STATUS ';
-----------------
DUMMY_KEY : 99999
AUTOTASK_STATUS : 2
ABA_STATE : 86
ABA_STATE_TIME : 09-OCT-12 02.00.01.076595 AM +08:00
ABA_OS_PID :
ABA_START_TIME : 17-AUG-12 10.00.01.058358 PM +08:00
MW_NAME : FRIDAY_WINDOW
MW_START_TIME : 17-AUG-12 10.00.00.000000 PM ASIA/SHANGHAI
MW_RECORD_TIME :
INSTANCE_NAME : acct1
RECONCILE_TIME : 09-OCT-12 02.00.01.073409 AM +08:00
-----------------
各个子任务的调度状态,从KET$_CLIENT_CONFIG(DBA_AUTOTASK_CLIENT)中查询,STATUS=2为ENABLE,=1为DISABLE
DBA_AUTOTASK_TASK表为统计信息,STATUS列可以忽略
SQL> @pt
Enter value for 1: SELECT * FROM KET$_CLIENT_CONFIG WHERE CLIENT_ID IN (4,5,6)
old 2: p_query VARCHAR2(4000) := '&1';
new 2: p_query VARCHAR2(4000) := 'SELECT * FROM KET$_CLIENT_CONFIG WHERE CLIENT_ID IN (4,5,6)';
-----------------
CLIENT_ID : 4
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
CLIENT_ID : 5
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
CLIENT_ID : 6
OPERATION_ID : 0
STATUS : 2
ATTRIBUTES : 5
PRIORITY_OVERRIDE : 0
LAST_CHANGE : 17-SEP-11 09.52.13.507183 AM -07:00
SERVICE_NAME :
GENERATOR_JOB_NAME :
FIELD_1 :
FIELD_2 :
FIELD_3 :
-----------------
另外,可以通过查询dba_autotask_window_clients确认任务在各个时间窗口是否enable
2.AUTOTASK的任务,还是通过scheduler运行的,AUTOTASK的任务就是到时间向scheduler提交JOB运行
对于auto optimizer stats collection,每4小时提交一次scheduler
auto space advisor,每4小时提交一次scheduler
sql tuning advisor,每个WINDOW提交一次
3.每个window中,各个TASK的提交scheduler的次数,通过dba_autotask_client_history查询
每次提交task的时间点,执行状态,执行时间,报错代码通过dba_autotask_job_history查询
查询dba_autotask_window_history,确定时间窗口是否被正常调度
4.dba_autotask_schedule记录autotask未来几天的调度窗口,用于查询下次执行时间
dba_autotask_client_job记录当前正在运行的AUTOTASK任务
5.AUTOTASK既然是提交scheduler运行,那么在scheduler相关视图中也有很多信息
其提交的任务,名称为:统计分析ORA$AT_OS_OPT_SY_%,段建议ORA$AT_SA_SPC_SY_%,SQL调优ORA$AT_SQ_SQL_SW_%
从dba_scheduler_job_log,dba_scheduler_job_run_details也可以查询详细运行信息
6.AUTOTASK虽然是到达时间窗口提交scheduler运行,但是有时候存在异常导致其没有提交scheduler
检查下一次提交scheduler的时间,通过dba_scheduler_window_groups查询
确保只有1个WINDOW是ACTIVE的:select window_name,active from DBA_SCHEDULER_WINDOWS
相关文档:
Scheduled Maintenance Auto Tasks Not Working After 11.2.0.3 Upgrade [ID 1452836.1]
Why Auto Optimizer Statistics Collection May Appear to be "Stuck"? [ID 1320246.1]
7.最后1点,11g开始,scheduler运行受控于job_queue_processes,确保该参数非0。还有MOS上查AUTOTASK相关的信息,要用"auto task",要有空格,“autotask”找不到啥子有价值的东西。。。。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8242091/viewspace-746045/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8242091/viewspace-746045/