alert日志中发现以下报错:
2018-11-22T22:00:00.010851+08:00
Setting Resource Manager plan SCHEDULER[0x4AC6]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
2018-11-22T22:00:40.060871+08:00
Errors in file /data/prd/oracle/database/diag/rdbms/tcp/tcp/trace/tcp_j001_108717.trc:
ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_38"
ORA-20001: Statistics Advisor: Invalid task name for the current user
ORA-06512: at "SYS.DBMS_STATS", line 47207
ORA-06512: at "SYS.DBMS_STATS_ADVISOR", line 882
ORA-06512: at "SYS.DBMS_STATS_INTERNAL", line 20059
ORA-06512: at "SYS.DBMS_STATS_INTERNAL", line 22201
ORA-06512: at "SYS.DBMS_STATS", line 47197
2018-11-22T22:00:41.211387+08:00
less /data/prd/oracle/database/diag/rdbms/tcp/tcp/trace/tcp_j001_108717.trc
Trace file /data/prd/oracle/database/diag/rdbms/tcp/tcp/trace/tcp_j001_108717.trc
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Build label: RDBMS_12.2.0.1.0_LINUX.X64_170125
ORACLE_HOME: /data/prd/oracle/database/12.2.0.1/tcp
System name: Linux
Node name: DB-01
Release: 4.1.12-124.14.5.el7uek.x86_64
Version: #2 SMP Fri May 4 15:26:53 PDT 2018
Machine: x86_64
Instance name: tcp
Redo thread mounted by this instance: 1
Oracle process number: 29
Unix process pid: 108717, image: oracle@DB-01 (J001)
*** 2018-11-22T22:00:40.060657+08:00
*** SESSION ID:(208.47015) 2018-11-22T22:00:40.060681+08:00
*** CLIENT ID:() 2018-11-22T22:00:40.060688+08:00
*** SERVICE NAME:(SYS$USERS) 2018-11-22T22:00:40.060695+08:00
*** MODULE NAME:(DBMS_SCHEDULER) 2018-11-22T22:00:40.060702+08:00
*** ACTION NAME:(ORA$AT_OS_OPT_SY_38) 2018-11-22T22:00:40.060709+08:00
*** CLIENT DRIVER:() 2018-11-22T22:00:40.060716+08:00
ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_38"
ORA-20001: Statistics Advisor: Invalid task name for the current user
ORA-06512: at "SYS.DBMS_STATS", line 47207
ORA-06512: at "SYS.DBMS_STATS_ADVISOR", line 882
ORA-06512: at "SYS.DBMS_STATS_INTERNAL", line 20059
ORA-06512: at "SYS.DBMS_STATS_INTERNAL", line 22201
ORA-06512: at "SYS.DBMS_STATS", line 47197
处理方法:
执行以下语句
SQL> select name, ctime, how_created,OWNER_NAME from sys.wri$_adv_tasks where name in ('AUTO_STATS_ADVISOR_TASK','INDIVIDUAL_STATS_ADVISOR_TASK');
no rows selected
如果查询结果为空
执行
sqlplus / as sysdba
EXEC dbms_stats.init_package();
如果查询结果非空,对象owner又不是sys(比如是system),需要先删除非sys用户下的这些对象
SQL> conn system/&password
DECLARE
v_tname VARCHAR2(32767);
BEGIN
v_tname := 'AUTO_STATS_ADVISOR_TASK';
DBMS_STATS.DROP_ADVISOR_TASK(v_tname);
END;
/
SQL> DECLARE
v_tname VARCHAR2(32767);
BEGIN
v_tname := 'INDIVIDUAL_STATS_ADVISOR_TASK';
DBMS_STATS.DROP_ADVISOR_TASK(v_tname);
END;
/
再执行
sqlplus / as sysdba
exec dbms_stats.init_package();
column name format A35
set linesize 120
select name, ctime, how_created,OWNER_NAME from sys.wri$_adv_tasks
where name in ('AUTO_STATS_ADVISOR_TASK','INDIVIDUAL_STATS_ADVISOR_TASK');
正常输出如下:
NAME CTIME HOW_CREATED OWNER_NAME
----------------------------------- ---------- ------------------------------
AUTO_STATS_ADVISOR_TASK 14-APR-16 CMD
INDIVIDUAL_STATS_ADVISOR_TASK 14-APR-16 CMD
参考
ORA-12012 Error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_<NN> in 12.2.0 Database version or higher release (like 18c) (文档 ID 2127675.1)