[20191126]探究等待事件的本源2.txt[通俗易懂]

[20191126]探究等待事件的本源2.txt[通俗易懂][20191126]探究等待事件的本源2.txt–//做一个测试,验证如果写入控制文件慢也会影响提交性能.1.环境:SCOTT@book> @ ver1PORT_STRING VERSION

[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[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10753.html

(0)
上一篇 2022-12-22
下一篇 2022-12-22

相关推荐

  • [20191125]探究等待事件的本源.txt

    [20191125]探究等待事件的本源.txt[20191125]探究等待事件的本源.txt–//当工作中遇到oracle的性能问题时,查看awr报表提供很好的解决问题途径.但是有时候很容易想当然.–//比如以前我一看到 log file s

    2022-12-21
    127
  • 使用conda安装numpy

    使用conda安装numpy在进行Python开发时,常常需要使用一些科学计算的库,如numpy、scipy等。因此,在进行这类开发工作时,需要用到conda这个工具,来安装和管理这些库。本文将介绍如何使用conda来安装numpy。

    2024-04-17
    86
  • jdbc-使用java连接mysql「终于解决」

    jdbc-使用java连接mysql「终于解决」package com.cqust; import com.mysql.jdbc.Driver; import java.sql.Connection; import java.sql.DriverM

    2023-04-28
    166
  • 使用Python实现安卓自动换IP刷点击量

    使用Python实现安卓自动换IP刷点击量近些年,网络点击量越来越被看成是网络工作的重要指标之一。但是,有一些IP地址的点击量明显会比其他IP地址高很多。因此,每个网络工作者都渴望拥有能够随时切换IP地址的工具来提高自己的点击量,从而让自己的工作与众不同。在这种情况下,Python就成了一种非常有用的工具。

    2024-07-08
    36
  • SQL 基础整理[亲测有效]

    SQL 基础整理[亲测有效]SQL语句执行顺序 From 表连接 on连接条件,形成新的虚拟表 where 筛选条件 group by 生成新的结果集合 group by 分组列表 having 分组后筛选 select 选出显

    2023-03-28
    162
  • oracle锁表和解锁_数据库锁表会自动解锁吗

    oracle锁表和解锁_数据库锁表会自动解锁吗–ORACLE表被锁原因:具体操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态, –可能是该表被某一用户锁定,导致其他用户无法继续操作 –查询被锁

    2023-03-01
    157
  • Python的构造函数初探

    Python的构造函数初探作为Python工程师,构造函数是我们每天都在用的重要概念之一。在Python中,有很多地方都需要用到构造函数,而今天的文章就来详细介绍Python中构造函数的概念、用法及注意点。

    2024-07-22
    39
  • 蓝牙耳机什么牌子好?荣耀FlyPods3使我心动十分[亲测有效]

    蓝牙耳机什么牌子好?荣耀FlyPods3使我心动十分[亲测有效]     如果你问我蓝牙耳机什么牌子好,我想告诉你我的故事。作为耳机深度爱好者,我一直在发愁自己使用的有线耳机,因为在很多情况下,有线耳机都会让我不由得皱起眉头,比如我在听歌时想去接水,就不得不带上…

    2023-02-21
    160

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注