今天后台出现了很多ORA-600,其中第一个错误参数为999。
这个问题在METALINK上没有找到类似的说明。
错误信息为:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [999], [0], [], [], [], [], [], []
Current SQL statement for this session:
DECLARE job BINARY_INTEGER := :job; next_date DATE := :mydate; broken BOOLEAN := FALSE; BEGIN dbms_refresh.refresh('"NDMAIN"."REP_REFRESH"'); :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END;
显然,问题出在物化视图的刷新上面。
物化视图的刷新一直没有任何的问题,那么是什么原因导致问题突然出现了呢?
检查错误的发生之前对物化视图进行的最后修改,发现通过ALTER TABLE RENAME命令将几个不再使用的物化视图进行了重命名。
看来,基本上确定就是这个原因导致了问题的产生。
将这三个物化视图从刷新组中删除,再次刷新,问题消失。
尝试刷新问题物化视图:
SQL> EXEC DBMS_MVIEW.REFRESH('USR_ROLE_BAK_20070403')
BEGIN DBMS_MVIEW.REFRESH('USR_ROLE_BAK_20070403'); END;
*
ERROR at line 1:
ORA-23401: materialized view "NDMAIN"."USR_ROLE_BAK_20070403" does not exist
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 794
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 851
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 832
ORA-06512: at line 1
SQL> EXEC DBMS_MVIEW.REFRESH('USR_ROLE')
BEGIN DBMS_MVIEW.REFRESH('USR_ROLE'); END;
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [999], [0], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 794
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 851
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 832
ORA-06512: at line 1
尝试利用修改后的名称刷新,Oracle报错找不到物化视图,利用修改前的名称刷新,重现了ORA-600 999的错误。
现在可以确定,是由于物化视图名称改变导致了这个错误的产生。
问题到这里并没有完,因为物化视图本身其实是不能RENAME的。
比如想重现这个错误:
SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY);
表已创建。
SQL> CREATE MATERIALIZED VIEW LOG ON T;
实体化视图日志已创建。
SQL> CREATE MATERIALIZED VIEW MV_T REFRESH FAST AS SELECT * FROM T;
实体化视图已创建。
SQL> ALTER TABLE MV_T RENAME TO T_MV;
ALTER TABLE MV_T RENAME TO T_MV
*第 1 行出现错误:
ORA-32318: 无法重命名实体化视图
SQL> RENAME MV_T TO T_MV;
RENAME MV_T TO T_MV
*第 1 行出现错误:
ORA-32318: 无法重命名实体化视图
为什么其他的物化视图都是无法修改的,而错误发生的数据库中是可以修改的呢?经过检查发现,这台数据库上一次迁移是一次跨平台迁移,迁移采用的是EXP/IMP全库导出的方案,因此数据库的物化视图复制环境不是手工建立的,而是通过EXP/IMP导出导入建立的。显然是导入导出过程中遗漏了一些数据字典信息,造成了这个问题的产生。
关于EXP/IMP迁移复制环境,可以参考:http://yangtingkun.itpub.net/post/468/216990
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-69243/ ,如需转载,请注明出处,否则将追究法律责任。