首页 > 数据库 > Oracle > 难缠的ora-04031
客户系统原来运行在windows上,sga总共给了800m左右,系统尽管运行的不稳定,但是ora-04031错误报的并不多,之后系统迁入到aix 双机rac(oarcle 11.1)环境下,sga给了4g,共享池基本上维持在2g多,但是系统频繁出现ora-04031,出现ora-04031之后客户端应用无法连接,起初客户使用alter system flush shared_pool的办法刷新shared pool,刷新之后问题得以解决,不过没隔几天问题再次出现,此时有时候刷新shared pool不能解决问题了,由于是双机,因此不得以的情况下只能重启出现ora-04031错误的节点上的实例,重启之后问题得以暂时解决,但是过几天以后还是会出现ora-04031,出现ora-04031之后对应的sql需要的共享内存显示是4000多byte,总之小于_shared_pool_reserved_min_alloc的值4400,调整_shared_pool_reserved_min_alloc为4000,目的当然是希望更多的sql能够使用共享池保留池对应的内存,但是问题几乎没有啥缓解,ora-04031错误依旧,此时ora-04031对应的sql需要的共享内存显示是3896byte,看来通过调整_shared_pool_reserved_min_alloc不能完全解决问题,因为_shared_pool_reserved_min_alloc的最小值是4000,此时又一次增大了sga_target的值为6g,shared pool的值在3g左右波动问题依旧,客户不能忍受这个错误的困扰,最后把sga_target调整为8g,同时修改cursor_sharing为force,ora-04031再没有出现过...
[@more@]rt来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1039625/ ,如需转载,请注明出处,否则将追究法律责任。