ORA-20011 ORA-29913 KUP-11024故障处理
在日常巡中发现alert日志有出现
ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout KUP-11024: This external table can only be accessed from within a Data Pump job.
经查,此错误产生原因是在做datadump时候,oracle在产生三个临时表储存临时信息。err$,et$,sys_import_xxx....当在数据泵在未正常中止后,比如人为中止,造成datadump的临时外部表没有正常清理,或者是外部表文件被删除后,没有清理外部表的定义,就会造成oracle在做统计信息job时出现如此错误。
可通过如下查询语句来查看oracle的ET$临时表对象
select * from dba_objects where object_name like 'ET$%';
查询属于datadump生成的外部表
select * from dba_external_tables;
导致该问题的原因应该是在迁移时候,系统会创建外部表,导入结束后,正常情况下,系统会将数据文件删除后删除表的定义,但是系统只删除了数据文件并没有删除表的定义,或者删除表的定义时出现了问题,导致此错误的发生。
解决办法如下:
sqlplus / as sysdba drop table owner.tables purge;