注意到引起ORA-600错误的为一个insert语句,对应的表为T_MX_ATTACHMENT,与用户确认后得知,这个表正式用来存放附件的表。还注意两个对象编号,按如下方式查询两个出现问题的对象类型:
select object_name,object_type,created,status,last_ddl_time
from user_objects
where object_id in(\'83300\',\'83301\');
查询结果:
name type CREATED STATUS LAST_DDL
SYS_LOB0000083299C00008$$ LOB 2014-4-30 14:42:06 VALID 2014-4-30 14:42:06
SYS_IL0000083299C00008$$ INDEX 2014-4-30 14:42:06 VALID 2014-4-30 14:42:06
到此,问题逐渐清晰了,引起600错误的是lob字段和lob字段的索引,接下来确认了一下lob字段和lob字段索引的大小,得知lob字段接近200G,所以建议用户在夜间没有用户使用的时候执行如下操作:
alter table T_MX_ATTACHMENT move lob(ATT_FILE) store as (tablespace SGCIS) parallel 10 nologging;
alter table T_MX_ATTACHMENT logging parallel 1;
ANALYZE TABLE T_MX_ATTACHMENT VALIDATE STRUCTURE CASCADE;
对lob字段进行move后故障成功解决。