admin管理员组

文章数量:1612099

某项目数据库每天4:00批量任务,不定期会在批量过程中执行一条sql的时候整个sql hang住,然后就批量hang起来。

先推断是执行计划问题,后来更新执行计划后,仍旧会hang住

后来通过ash查看故障sql

INSERT /*+ append */INTO xxx (xxx_NO, ........ ) (此处为客户保密sql,仅表达sql类型,即使用insert append的hint时会触发bug)

然后MOS上查看在rac模式下,insert append有可能导致gc current request的bug

Bug 18280813 : INSERT /*+ APPEND */ STUCK IN GC CURRENT REQUEST)

解决办法是修改一个隐含参数,修改方法,

alter system set "_gc_read_mostly_locking"=FALSE scope=spfile sid='*';


然后需要将数据库重启才能生效查询是否生效select x.ksppinm name,y.ksppstvl valuefrom sys.x$ksppi x,sys.x$ksppcv ywhere x.indx=y.indx and substr(x.ksppinm,0,1)='_' and x.ksppinm like '%gc_read_mostly%';


观察一段时间后批量任务不会hang死

本文标签: insertappendORACLEracrequest