ORA-20011 ORA-29913 KUP-11024
1.最近迁移了一台数据库,但没多久后发现新迁移的数据库告警日志中一直报错,错误如下:
2.数据库版本如下:
3.从上面错误日志中可以看到,应该是每天晚上数据库自动收集统计信息时候报错。具体得看详细的trace文DBMS_STATS: GATHER_STATS_JOB包是数据库做统计信息使用的数据库包,时间发生在22:00,数据库每天都在做自动的统计信息收集,时间为平时22:00–2:00四个小时,周末全天
4.从trace 文件中可以看到ora-20011、ora-29913两个错误,错误原因是有两张外部表在收集统计信息的时候出现了错误,因为外部表所对应的外部文件不存在导致。
5.对应两张外部表的结构如上,导致该问题的原因应该是在迁移时候,系统会创建外部表,导入结束后,正常情况下,系统会将数据文件删除后删除表的定义,但是系统只删除了数据文件并没有删除表的定义,或者删除表的定义时出现了问题,导致此错误的发生。
6.最后删除对应的表即可
sqlplus system/XXXX
drop table ET$0183001B0001 purge ;
drop table ET$030400030001 purge;