oracle 12.2 ORA-12012报错

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)
 

猜你喜欢

转载自blog.csdn.net/Hehuyi_In/article/details/89473076