ORA-04020 在SYS.CDC_ALTER_CTABLE_BEFORE上死锁的一个BUG
|
|
|
今天开发组的一个哥们要我帮忙重新启动一下系统,这个简单,我关库,我重新启动,没问题,启动库的时候报告错误信息如下:
ORA-00604: error occurred at recursive SQL level 1
ORA-04020:
deadlock
detected
while
trying
to
lock object
SYS.CDC_ALTER_CTABLE_BEFORE
在alter.trc里面说是应用死锁,nnd这么倒霉的事情又让我碰上了
我查:
Bug 3017048 - Ora-4020, Functional Index Locking During Invalidation Causing
Self-
Deadlock
怎么oracle的bug总是让我这倒霉鬼碰上啊
影响的版本:
Oracle Server - Enterprise Edition - Version: 9.2.0.7.0
This problem can occur on any platform.
还是9207的所有平台版本,唉,衰啊。
处理办法:
1)
将当前的spfile转换成pfile后,在pfile内添加
*._system_trig_enabled=false
*.aq_tm_processes=0
*.job_queue_processes=0
启动数据库使用startup pfile='xxxx.ora'启动数据库,然后运行CATALOG.SQL。运行完脚本后,将
使用原有spfile启动数据库。
2)
如果不用CDC的话,可以使用如下脚本将trigger关掉
SQL> conn / as sysdba
SQL> ALTER TRIGGER sys.cdc_alter_ctable_before DISABLE;
SQL> ALTER TRIGGER sys.cdc_create_ctable_after DISABLE;
SQL> ALTER TRIGGER sys.cdc_create_ctable_before DISABLE;
SQL> ALTER TRIGGER sys.cdc_drop_ctable_before DISABLE;
|
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14245958/viewspace-605319/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14245958/viewspace-605319/