ORA-20011 ORA-29913 KUP-11024

1.最近迁移了一台数据库,但没多久后发现新迁移的数据库告警日志中一直报错,错误如下:

ORA-20011 ORA-29913 KUP-11024

2.数据库版本如下:

ORA-20011 ORA-29913 KUP-11024

3.从上面错误日志中可以看到,应该是每天晚上数据库自动收集统计信息时候报错。具体得看详细的trace文DBMS_STATS: GATHER_STATS_JOB包是数据库做统计信息使用的数据库包,时间发生在22:00,数据库每天都在做自动的统计信息收集,时间为平时22:00–2:00四个小时,周末全天

ORA-20011 ORA-29913 KUP-11024

4.从trace 文件中可以看到ora-20011、ora-29913两个错误,错误原因是有两张外部表在收集统计信息的时候出现了错误,因为外部表所对应的外部文件不存在导致。


ORA-20011 ORA-29913 KUP-11024


ORA-20011 ORA-29913 KUP-11024


5.对应两张外部表的结构如上,导致该问题的原因应该是在迁移时候,系统会创建外部表,导入结束后,正常情况下,系统会将数据文件删除后删除表的定义,但是系统只删除了数据文件并没有删除表的定义,或者删除表的定义时出现了问题,导致此错误的发生。


6.最后删除对应的表即可

sqlplus system/XXXX

drop table ET$0183001B0001 purge ;

drop table ET$030400030001 purge;