在9.2.0.7.0中重新创建catalog

在9.2.0.7.0中运行?/rdbms/admin/catalog.sql时,需要先禁用一个系统触发器:_SYSTEM_TRIG_ENABLED。

参考metalink文档:
Note:149948.1
Note:360509.1 Ora-04020 on Sys.Cdc_alter_ctable_before When Running Catalog.Sql

[@more@]

在以往的经验中,?/rdbms/admin/catalog.sql是可以重复运行的,并且在运行时,不需要进行任何额外动作,对数据库的运行也没有什么影响。

在Oracle 9.2.0.7.0中,如果在数据库打开时,直接重新运行catalog.sql这个脚本,会报告:
ERROR at line 1:
ORA-04020: deadlock detected while trying to lock object
SYS.CDC_ALTER_CTABLE_BEFORE

此时,数据库catalog已经被损坏。使用特权用户可以登陆数据库,但速度非常慢;普通用户无法再登陆数据库。

特权用户登陆:
SQL> conn system;
ERROR:
ORA-04020: deadlock detected while trying to lock object SYS.DBMS_STANDARD


ERROR:
ORA-04020: deadlock detected while trying to lock object SYS.DBMS_STANDARD


Error accessing package DBMS_APPLICATION_INFO
Connected.
SQL>

SQL> alter trigger sys.limit_test disable;
alter trigger sys.limit_test disable
*
ERROR at line 1:
ORA-04020: deadlock detected while trying to lock object
SYS.CDC_ALTER_CTABLE_BEFORE


普通用户无法登陆。
SQL> conn test/test;
ERROR:
ORA-04020: deadlock detected while trying to lock object
SYS.CDC_ALTER_CTABLE_BEFORE


Warning: You are no longer connected to ORACLE.
SQL>

关闭数据库。然后创建pfile,在pfile里增加_SYSTEM_TRIG_ENABLED=FALSE,然后再根据pfile创建spfile,然后再启动数据库。

再运行?/rdbms/admin/catalog.sql就可以了。

运行完毕后,将pfile里增加的参数去掉,然后重新根据pfile创建spfile,再重新启动数据库。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23822/viewspace-988783/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23822/viewspace-988783/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值