ERROR
-----------------------
ORA-12012: error on auto execute of job "SYS"."PMO_DEFERRED_GIDX_MAINT_JOB"
ORA-01555: snapshot too old: rollback segment number 18 with name "_SYSSMU18_4262240127$" too small
ORA-06512: at "SYS.DBMS_PART", line 80
ORA-06512: at line 1
解决方案
搜集数据字典的统计信息,如下:
connect / as sysdba
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
原因
这可能是 Oracle 内部SQL语句的性能问题。
trace文件显示以下错误:
ORA-12012: error on auto execute of job "SYS"."PMO_DEFERRED_GIDX_MAINT_JOB"
ORA-01555: snapshot too old: rollback segment number 18 with name "_SYSSMU18_4262240127$" too small
ORA-06512: at "SYS.DBMS_PART", line 80
ORA-06512: at line 1
在alert log中有相应的错误 (可能是一个SQL),我们需要知道它是什么。alert log 中应该有以下错误信息:
Errors in file /u01/oracle/db/diag/rdbms/pXXX/pXXXXX/trace/pXXXXX_j000_185764.trc