一、 本次变更详解
1. bug 症状
· 在11.2.0.4 RAC数据库夯在“latch: row cache objects”
· 进程出现大量的“latch: row cache objects”和“latch: shared pool”等待事件
· 用户进程无法正常登录RAC实例
· LCK0长时间等待在“row cache cleanup”
· 在问题期间未生成AWR快照
· 调用堆栈显示类似于:
|
LCK0: ksedsts <- ksdxfstk <- ksdxcb <- sspuser <- __sighndlr <- call_user_handler <- sigacthandler <- _syscall6 <- sskgpwwait <- skgpwwait <- kslges <- kghfrunp <- kghfnd <- kghalo <- kghgex <- kghfnd <- kghalo <- kghgex <- kghfnd <- kghprmalo <- kghalp <- parchk <- pkaidl <- pkamh2 <- pdybF00_Init <- pdy1F01_Driver <- pdw0F82_Run_Code_Gen <- pdw0F01_Code_Gen <- phpcmp <- pcicog Foreground: ksedsts <- ksdxfstk <- ksdxcb <- sspuser <- __sighndlr <- call_user_handler <- sigacthandler <- _syscall6 <- sskgpwwait <- skgpwwait <- kslges <- kqrbip <- kqrbfr <- kqrbgl <- ksbabs <- ksbrdp <- opirip <- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main |
2. B ug 产生原因
LCK0进程阻塞了很多等待者。
LCK0调用了row cache层的kqr.h和kgh.h和kghfrunp.h中的latch。
3. bug 影响版本
RAC数据库11.2.0.4及更高版本
注:此bug 在11.2.0.4版本的数据库已跟新至psu(11.2.0.4.4 (Oct 2014)
)补丁中,在12.2.0.1中已在产品版本中修复。故此次变更对象为12.1的rac数据库
4. 变更风险
此次变更只是 减少 row cache cleanup 期间的争用(如果默认值1不能解决问题的话) ,避免出现不给。风险较小。
二、 变更过程
1. 变更实施时间
待定
2. 变更时间预估
一个小时
3. 变更过程
两个节点分别执行: alter system set events '18199537 trace name context forever, level 100';
|
[oracle]wykhdb1:/home/oracle>s ql plus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Aug 23 12:26:01 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> alter system set events '18199537 trace name context forever, level 100'; [oracle]wykhdb1:/home/oracle>s ql plus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Aug 23 12:26:01 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> alter system set events '18199537 trace name context forever, level 100'; 验证: SQL> oradebug setmypid Statement processed. SQL> oradebug eventdump system; 18199537 trace name context forever, level 100 |
注:此sql 需要在两个节点上分别执行,且重启失效。想永久生效估计要用 pfile 设置 event 参数: alter system set event='18199537 trace name context forever, level 100' scope=spfile;
|
[oracle]wykhdb1:/home/oracle>s ql plus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Fri Aug 23 12:26:01 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> create pfile =’/home/oracle/pfile_20190823.ora’ from spfile SQL> alter system set event='18199537 trace name context forever, level 100' scope=spfile;
System altered. |
注:此条命令只在一个节点执行即可,后期哪个节点重启哪个节点生效,经测试更改此参数不会导致重启一个节点起不来的情况。
4. 变更回退
临时生效的可以重启库或者 alter system set events '18199537 trace name context off'; 来回退
永久生效的可以用变更前备份的pfile 文件重新起库或者 alter system set events '18199537 trace name context off'; 来回退
三、 变更总结
1. 此次变更涉及版本12.1 rac
2. 此次变更分为两条sql , 分别对应临时生效和永久生效(建议先用临时生效,等稳定后等下一个停机窗口写入spfle 文件永久生效)
3. 此次变更不会影响已存在数据
4. 此次变更不需要停机
5. 临时生效需要两个节点执行语句
参考m os 文档
1. 文档 ID 2533879.1
2. 文档 ID 18199537.8
3. Bug 18199537 : "CHILD ROW CACHE OBJECTS" LATCH CONTENTION AND CONNECTING DB HANG
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31562969/viewspace-2654723/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31562969/viewspace-2654723/
针对Oracle RAC 11.2.0.4版本中出现的“latch:rowcacheobjects”和“latch:sharedpool”等待事件问题,本文详细介绍了bug的症状、产生原因及其对版本的影响。通过调整事件参数,减少rowcachecleanup期间的争用,避免数据库连接挂起。变更过程包括在两个节点上执行特定SQL语句,以临时或永久方式设置事件,确保数据库稳定性。
6万+

被折叠的 条评论
为什么被折叠?



