oracle19cdmlcommit命令耗时过长案例分析
最近现场新装了套oracle 19c的rac库准备⽤来进⾏迁移,测试阶段发现commit命令响应极其缓慢,具体如下:
16:46:24 SQL> delete from SPA.SQLSET_SPATAB3 where MODULE=‘PL/SQL Developer’;
4 rows deleted.
Elapsed: 00:00:00.33
16:46:39 SQL> commit;
Commit complete.
Elapsed: 00:00:13.62
通过测试,DML语句在执⾏阶段都正常,从响应时间上来看,没有产⽣什么异常等待,反⽽commit命令的响应⾮常慢。由于commit命令会触发lgwr进程刷出redo buffer的数据,进⼀步核实lgwr trc发现没有warning,看上去lgwr进程状态也⽐较正常.没办法,只能做个awr 翻翻看看.
Top 10 Foreground Events by Total Wait Time
Event Waits Total Wait Time (sec) Avg Wait % DB time Wait Class
log file sync 8 20.2 2527.69ms 11.5 Commit
Event Waits %Time -outs Total Wait Time (s) Avg wait Waits /txn % bg time
db file parallel write 693,036 0 761 201.07us 0.32 5.23
log file parallel write 269,496 0 1,361 600.14us 0.79 4.29
可以看到log file sync等待⽐较严重,由于新机器使⽤的是全闪存,log file parallel write物理写⼊性能正常,推测log file sync期间产⽣了其它异常等待
Instance Activity Stats
Statistic Total per Second per Trans
redo write broadcast ack count 327 0.12 11.68
redo write broadcast ack time 293,596,142 103,774.29 10,485,576.50
进⼀步核查发现redo buffer在rac跨节点⼴播阶段产⽣的⼤量的时间消耗,这个时间消耗⾮常可疑.
在rac环境中, 主要由LMS相关进程负责rac间数据的传递,接下来便重点核查lms相关进程的trc.
*** 2020-05-03T16:41:09.431126+08:00
Warning: log write broadcast wait time 933ms (SCN 0x125f5f3)
***** 2020-05-03T16:42:06.188423+08:00
Warning: log write broadcast wait time 14448ms (SCN 0x125f638)
*** 2020-05-03T10:27:57.759832+08:00
Warning: log write broadcast wait time 23684ms (SCN 0x1261ada)
2019-12-03 10:27:57.759 : GSIPC:PING: rcv’d PINGREQ[76] from 2.1 (seq 0.2104) stm 0x9b93a155
2019-12-03 10:27:57.759 : GSIPC:PING: send PINGACK[76] to 2.1 (seq 0.2104)oracle登录命令
可以发现LMS进程在持续告警,buffer的broadcast时间出现了异常.通过排查osw相关数据,rac私⽹响应正常,问题到了这⾥基本可以确认是oracle 的bug了. 为了问题的严谨性还是开了sr,sr确认命中
Bug 30614411 : LMS IGNORING MESSAGE HANDLER FOR SCN MESSAGE, ORIGINATING INSTANCE WAITING VERY LONG FOR BROADCAST COMPLETION
打上对应平台和版本的补丁后,测试观察问题得到解决. 事后只能吐槽⼀句,新版本bug真TM多.
注:
rac环境下,当scn发⽣变化时,⽐如该案例中的commit阶段,lgwr、lms相关进程需要将最新的scn等信息⼴播给集内的其它节点,并等待确认的ack信号,当这个阶段耗时过长时,便出现了上⽂中的lms告警信息,以及awr中的broadcast ack信息.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。