最近遇到了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”找不到啥子有价值的东西。。。。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8242091/viewspace-746045/
,如需转载,请注明出处,否则将追究法律责任。