客户10.2.0.4 RAC for HP-UX 11.31在物化视图刷新时出现这个错误。
错误信息如下:
Thu May 3 22:54:44 2012 Errors IN file /u01/app/oracle/admin/ORCL/bdump/orcl1_j000_21657.trc: ORA-00600: internal error code, arguments: [qsmqSetupTableMetadata-2], [], [], [], [], [], [], [] Thu May 3 22:55:20 2012 Errors IN file /u01/app/oracle/admin/ORCL/bdump/orcl1_j000_21657.trc: ORA-12012: error ON auto EXECUTE OF job 718 ORA-12008: error IN materialized VIEW refresh path ORA-04045: errors during recompilation/revalidation OF ORCL.MV_REP ORA-00600: internal error code, arguments: [qsmqSetupTableMetadata-2], [], [], [], [], [], [], [] ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2254 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2460 ORA-06512: at "SYS.DBMS_IREFRESH", line 683 ORA-06512: at "SYS.DBMS_REFRESH", line 195 ORA-06512: at line 1 Thu May 3 22:55:20 2012 Trace dumping IS performing id=[cdmp_20120503225520] Thu May 3 22:57:28 2012 Trace dumping IS performing id=[cdmp_20120503225728] |
显然第一次出现这个问题是发生在物化视图的刷新过程中,而第二次是同样是物化视图的刷新,不过由于Oracle会尝试编译出现错误的物化视图,从而产生了更多的错误信息。
根据版本和错误信息很容易确定问题属于BUG:Bug 5764671 OERI:qsmqSetupTableMetadata-2 an ALTER MATERIALIZED VIEW。一个使用了PCT属性的物化视图,查询语句中包含了ORDER BY就会导致这个错误。
这个问题影响10.2.0.3和10.2.0.4,Oracle在10.2.0.5和11.1.0.6中进行了fixed,如果不像打补丁,最简单的方式就是去掉物化视图中的ORDER BY,而后对物化视图的查询时再指定ORDER BY语句。