ORA-00001,ORA-00604

来源:这里教程网 时间:2026-03-03 15:56:28 作者:

On : 12.1.0.2 version, RDBMS
alert log shows:
ORA-00604: error occurred at recursive SQL level 1
ORA-00001: unique constraint (SYS.SMON_SCN_TIME_TIM_IDX) violated

分析: 需要分析表smon_scn_time。验证表和索引的结构和一致性,如果它们之间存在不一致。需要重新创建索引。  

For 11.2.0.3 ,11.2.0.2 databases, it could be caused by Bug 13251192 - SMON reports ORA-604/ORA-1 on SYS.SMON_SCN_TIME_TIM_IDX which is fixed in 12.1.0.1 and 11.2.0.4.

解决办法:

For database 11.2.0.4 OR 12c, perform the analyze command below:
ANALYZE TABLE smon_scn_time VALIDATE STRUCTURE CASCADE ONLINE;
1、先得到表 SMON_SCN_TIME上的INDEX的创建语句)
set pages 0
set long 2000000000
select dbms_metadata.get_ddl('INDEX','SMON_SCN_TIME_SCN_IDX','SYS') from dual;

select dbms_metadata.get_ddl('INDEX','SMON_SCN_TIME_TIM_IDX','SYS') from dual;

2、然后 在系统级别设置12500事件阻止SMON更新SMON_SCN_TIME表

alter system set events '12500 trace name context level 10';

3、drop索引
drop index SYS.SMON_SCN_TIME_SCN_IDX;

drop index SYS.SMON_SCN_TIME_TIM_IDX;

4、通过步骤1得到的ddl,创建索引 SYS.SMON_SCN_TIME_SCN_IDX;和 SYS.SMON_SCN_TIME_TIM_IDX;

5、将事件12500关闭,这样 SMON就能更新SMON_SCN_TIME表
alter system set events '12500 trace name context off';

相关推荐