[20191126]探究等待事件的本源2.txt --//做一个测试,验证如果写入控制文件慢也会影响提交性能. 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SCOTT@book> create table t ( a number ) ; Table created. SCOTT@book> insert into t values (1); 1 row created. SCOTT@book> commit ; Commit complete. $ ps -ef | grep lgw[r] oracle 62683 1 0 Nov25 ? 00:00:09 ora_lgwr_book --//pid=62683. $ ls -l /proc/62683/fd/25[67] lrwx------ 1 oracle oinstall 64 2019-11-26 08:53:07 /proc/62683/fd/256 -> /mnt/ramdisk/book/control01.ctl lrwx------ 1 oracle oinstall 64 2019-11-26 08:53:07 /proc/62683/fd/257 -> /mnt/ramdisk/book/control02.ctl --//控制文件句柄是256,257. $ cat pw.gdb break *pwrite if $rdi==256 c --//如果文件句柄256存在写入,中断执行. 2.启动gdb,测试: --//session 1: SCOTT@book> select sysdate from dual ; SYSDATE ------------------- 2019-11-26 08:54:14 --//session 2: $ gdb -p 62683 -x pw.gdb ... Breakpoint 1, 0x000000379a00e600 in pwrite64 () from /lib64/libpthread.so.0 (gdb) --//session 3: SYS@book> alter system switch logfile ; --//挂起!! --//session 1: SCOTT@book> @ wait P1RAW P2RAW P3RAW P1 P2 P3 SID SERIAL# SEQ# EVENT STATUS STATE WAIT_TIME_MICRO SECONDS_IN_WAIT WAIT_CLASS ---------------- ---------------- ---------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------------------------------- -------- ------------------- --------------- --------------- -------------------- 00 00 00 0 0 0 86 559 17 switch logfile command ACTIVE WAITING 9280572 9 Administrative 0000000000000002 0000000000000015 0000000000000002 2 21 2 183 1 20011 control file parallel write ACTIVE WAITING 9280236 9 System I/O --//可以发现当前是日志切换,写入控制文件时设置断点,导致session 3挂起!! SCOTT@book> insert into t values (3); 1 row created. SCOTT@book> commit ; --//挂起!! --//session 4: SYS@book> @ wait P1RAW P2RAW P3RAW P1 P2 P3 SID SERIAL# SEQ# EVENT STATUS STATE WAIT_TIME_MICRO SECONDS_IN_WAIT WAIT_CLASS ---------------- ---------------- ---------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------------------------------- -------- ------------------- --------------- --------------- -------------------- 00 00 00 0 0 0 86 559 17 switch logfile command ACTIVE WAITING 82559695 83 Administrative 00000000000001C8 0000000088E4CF71 00 456 2296696689 0 128 523 2582 log file sync ACTIVE WAITING 44688489 45 Commit 0000000000000002 0000000000000015 0000000000000002 2 21 2 183 1 20011 control file parallel write ACTIVE WAITING 82559359 83 System I/O --//可以发现出现log file sync等待事件. --//session 2,不断按c继续执行.最后session 1,提交ok. --//session 1: SCOTT@book> commit ; Commit complete. SCOTT@book> select sysdate from dual ; SYSDATE ------------------- 2019-11-26 08:59:17 --//session 2,不断按c继续执行,最后session 3切换日志ok. --//session 3: SYS@book> alter system switch logfile ; System altered. --//session 2: --//按ctrl+c强制中断,退出gdb界面. SCOTT@book> @ tpt/ash/dash_wait_chains program2||event2 1=1 trunc(sysdate)+8/24+54/1440+14/86400 trunc(sysdate)+8/24+59/1440+17/86400 -- Display ASH Wait Chain Signatures script v0.2 BETA by Tanel Poder ( http://blog.tanelpoder.com ) %This SECONDS AAS WAIT_CHAIN ------ ---------- ---------- -------------------------------------------------------------------------- 34% 210 .7 -> (sqlplus) switch logfile command -> (LGWR) control file parallel write 34% 210 .7 -> (LGWR) control file parallel write 23% 140 .5 -> (sqlplus) log file sync -> (LGWR) control file parallel write ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10% 60 .2 -> (MMON) enq: CF - contention -> (LGWR) control file parallel write --//你可以发现产生log file sync的原因是control file parallel write写太慢. SCOTT@book> @ spid SID SERIAL# PROCESS SERVER SPID PID P_SERIAL# C50 ---------- ---------- ------------------------ --------- ------ ------- ---------- -------------------------------------------------- 128 523 4879 DEDICATED 4880 33 218 alter system kill session '128,523' immediate; SCOTT@book> @ tpt/ash/dash_wait_chains program2||event2 session_id=128 trunc(sysdate)+8/24+54/1440+14/86400 trunc(sysdate)+8/24+59/1440+17/86400 -- Display ASH Wait Chain Signatures script v0.2 BETA by Tanel Poder ( http://blog.tanelpoder.com ) %This SECONDS AAS WAIT_CHAIN ------ ---------- ---------- ----------------------------------------------------------------- 100% 140 .5 -> (sqlplus) log file sync -> (LGWR) control file parallel write 3.总结: --//不要一看到log file sync等待事件就以为是redo写入慢,实际上control file parallel write慢也可能导致该等待事件出现.
[20191126]探究等待事件的本源2.txt
来源:这里教程网
时间:2026-03-03 14:36:59
作者:
编辑推荐:
- [20191126]探究等待事件的本源2.txt03-03
- 如何运用项目管理思维制定工作计划?03-03
- oracle 左表链接03-03
- [20191127]探究等待事件的本源4.txt03-03
- impdp导入报错案例-ORA-00907-建表缺失右括号03-03
- 如果你还没有工作,请收好这6个自学网站,或许能够改变你的一生03-03
- session cursor 的种类和用法03-03
- 手机文件夹清理技巧!删除几个文件夹,瞬间腾出几G内存空间03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 如何运用项目管理思维制定工作计划?
如何运用项目管理思维制定工作计划?
26-03-03 - impdp导入报错案例-ORA-00907-建表缺失右括号
impdp导入报错案例-ORA-00907-建表缺失右括号
26-03-03 - 如果你还没有工作,请收好这6个自学网站,或许能够改变你的一生
如果你还没有工作,请收好这6个自学网站,或许能够改变你的一生
26-03-03 - 手机文件夹清理技巧!删除几个文件夹,瞬间腾出几G内存空间
手机文件夹清理技巧!删除几个文件夹,瞬间腾出几G内存空间
26-03-03 - Oracle数据库 11.2.0.4 EMON进程持续消耗CPU
Oracle数据库 11.2.0.4 EMON进程持续消耗CPU
26-03-03 - 手机NFC有6种用法!很多人只会用公交卡,剩下5个功能也很强大
手机NFC有6种用法!很多人只会用公交卡,剩下5个功能也很强大
26-03-03 - Streams AQ: enqueue blocked on low memory等待事件导致expdp导出缓慢问题
- 饿了么交付中心语言栈转型总结
饿了么交付中心语言栈转型总结
26-03-03 - [20191122]RMAN-03999.txt
[20191122]RMAN-03999.txt
26-03-03 - Oracle SQL执行计划异常解析的处理方法
Oracle SQL执行计划异常解析的处理方法
26-03-03
