解决Oracle 11g安装导致数据库无法自动搜集统计信息
近期发现个别Oracle 11g数据库无法自动收集统计信息,部分视图查询结果如下:
SQL> select client_name,status from dba_autotask_client where client_name = 'auto optimizer stats collection';
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
SQL>
SQL> select client_name,status from dba_autotask_task;
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
SQL>
SQL> select window_name,autotask_status from DBA_AUTOTASK_WINDOW_CLIENTS;
WINDOW_NAME AUTOTASK_STATUS
------------------------------ ---------------
WEDNESDAY_WINDOW DISABLED
FRIDAY_WINDOW DISABLED
SATURDAY_WINDOW DISABLED
THURSDAY_WINDOW DISABLED
TUESDAY_WINDOW DISABLED
SUNDAY_WINDOW DISABLED
MONDAY_WINDOW DISABLED
7 rows selected
发现作业全部DISABLED,经测试发现和数据库安装时未勾选“启用自动维护任务”的现象一致(默认勾选),可能是之前DBA安装时取消勾选,如下图:
由于未勾选“启用自动维护任务“,数据安装会执行如下命令,导致作业disable:
execute DBMS_AUTO_TASK_ADMIN.disable();
以后数据库如果需要启动自动维护任务,只需要执行如下命令:
SQL> execute DBMS_AUTO_TASK_ADMIN.enable();
PL/SQL procedure successfully completed
SQL> select window_name,autotask_status from DBA_AUTOTASK_WINDOW_CLIENTS;
WINDOW_NAME AUTOTASK_STATUS
------------------------------ ---------------
WEDNESDAY_WINDOW ENABLED
FRIDAY_WINDOW ENABLED
SATURDAY_WINDOW ENABLED
THURSDAY_WINDOW ENABLED
TUESDAY_WINDOW ENABLED
SUNDAY_WINDOW ENABLED
MONDAY_WINDOW ENABLED
7 rows selected