ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-600(999)错误(一)

ORA-600(999)错误(一)

原创 Linux操作系统 作者:yangtingkun 时间:2007-04-17 00:00:00 0 删除 编辑

今天后台出现了很多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博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69243/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10487107