数据库:oracle 11.2.0.4
系统:CentOS 7.4
环境:rac(2个节点)+dg
问题描述:巡检时发现以下告警.
Mon Jul 11 22:00:15 2022
DBMS_STATS: GATHER_STATS_JOB encountered errors. Check the trace file.
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_j004_62127.trc:
ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file orcl1_ora_65011_cq_cqher.trc in CQTRACEFILE not found
.trc文件显示:
*** 2022-07-11 22:00:15.023
DBMS_STATS: GATHER_STATS_JOB: GATHER_TABLE_STATS('"cqher"','"TRACEFILE"','""', ...)
DBMS_STATS: ORA-20011: Approximate NDV failed: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file orcl1_ora_65011_cq_cqher.trc in CQTRACEFILE not found
DBMS_STATS: GATHER_STATS_JOB: Stopped by Scheduler.
该异常原因为orcl1_ora_65011_cq_cqher.trc不存在,GATHER_STATS_JOB无法收集该表上的统计信息.此为升级后的遗留表,可以在升级后对其进行删除.
官方文档Document 1290722.1
解决方案:
查出相关表,
select owner, object_name, object_type
from dba_objects
where owner = 'CQHER'
and object_name = 'TRACEFILE'
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------- -------------------
CQHER TRACEFILE TABLE
删除表CQHER. TRACEFILE
drop table CQHER. TRACEFILE purge;
再删除CQTRACEFILE目录
drop directory CQTRACEFILE;