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/