使用混合列压缩(HCC)创建表时,收集此表的统计信息可能会失败,会报ORA-03113,并且警报日志显示以下ORA-07445:

症状

此问题发生在Exadata  12.2.0.1 环境中。
使用混合列压缩(HCC)创建表时,收集此表的统计信息可能会失败,会报ORA-03113,并且警报日志显示以下ORA-07445:

例如:

SQL> execute dbms_stats.gather_table_stats('TEST''TESTTBL'''0.01,cascade => true); 
BEGIN dbms_stats.gather_table_stats('TEST''TESTTBL'''0.01,cascade => true); 结束;

SQL> execute dbms_stats.gather_table_stats( 'TEST','TESTTBL','',0.01,cascade=>true); 
BEGIN dbms_stats.gather_table_stats( 'TEST','TESTTBL','',0.01,cascade=>true); END;

* 
ERROR at line 1: 
ORA-03113: end-of-file on communication channel 
Process ID: 301707 
Session ID: 847 Serial number: 49111

ORA-07445 [kopdarnew] ORA-07445 [kdztGetRowSampleSlots] ORA-07445 [pfrtcs]

变化

没有。

原因

根本原因尚不清楚。

作为解决方法,通过使用相同选项重新压缩表来解决该问题。

1.使用dbms_metadata.get_ddl()过程获取表的ddl。

CREATE TABLE "TESTTBL" 
( "C1" CHAR(8 CHAR) DEFAULT '00000000' NOT NULL ENABLE, 
"C2" VARCHAR2(2 CHAR) DEFAULT ' ' NOT NULL ENABLE, 
"C3" VARCHAR2(4 CHAR) DEFAULT ' ' NOT NULL ENABLE, 
"C4" VARCHAR2(4 CHAR) DEFAULT ' ' NOT NULL ENABLE 
) SEGMENT CREATION IMMEDIATE 
PCTFREE 0 PCTUSED 40 INITRANS 1 MAXTRANS 255 
COMPRESS FOR ARCHIVE LOW LOGGING                                      <<<<<<<< 
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) 
TABLESPACE "TBS1" ;

2.使用相同选项重新压缩表格。

alter table TESTTBL move compress for archive low;
注意:
如果解决方法无法解决您的问题,请与Oracle支持部门联系以进一步调查。
(文档ID 2381816.1)                                                                                                                                                    2019-06-24
原文地址:https://www.cnblogs.com/cqdba/p/11075829.html