一次ORACLE数据库高IO进程的排查处理

面对客户投诉系统响应缓慢,尤其在业务高峰期,我们迅速启动排查流程。通过监测发现数据库磁盘IO接近饱和,进一步定位到高IO进程,最终确定为新上线的大数据分析平台频繁抓取数据所致。协调调整数据抓取策略,成功缓解IO压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:
一个忙碌的早上,某客户来电,业务部门反映系统反应很慢,正是早上业务最忙碌时刻,需要抓紧排查处理……

排查:
–登陆系统后,按ISO流程,查看OS及数据库ACTIVE会话/等待事件等,可以发现主机的CPU 较低,IO使用率较高,数据库所在磁盘iostat输出来看,%util列接近100%,其它几列指标的值也不乐观;
–数据库中ACTIVE会话未见明显异常等待事件,也无BLOCKING_SESSION。
–于是通过操作系统层面找到IO使用量高的进程,在数据库中根据进程OSPID查到会话信息,快速确认相关用户及SQL,提交给应用程序维护厂商了。
–应用程序维护厂商找了一通后说不是他们的业务SQL,客户一时陷入了迷茫,因为正常这个数据库上只有这个业务,并且此进程的用户名也是与此应用程序对应…………
–接下来,通过数据库会话信息中的MACHINE列值来查找应用程序主机也没结果,皮球又回到了我这里。
–于是从数据库主机层面,通过OSPID信息,结合NETSTAT,找到源端主机IP,提交用户
–很快反馈找到对应程序,是新上的某大数据分析平台,定时从生产环境数据库抓取数据的,后面协商减少数据抓取频率及大量数据抓取动作放晚上业务闲时进行,问题解决。

相关排查日志及语句:

1.查看主机的IO资源及使用IO多的进程
[root@ABCDE ~]# iostat -xm 2 20
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.32    0.00    2.43    3.86    0.00   85.38

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
^^
VxVM15000        88.50     0.00 1253.00  126.50   155.40     1.18   232.46     4.34    3.11    3.36    0.70   0.72  99.45
VxVM15001         0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

[root@ABCDE ~]# pidstat -d 2
Linux 2.6.32-642.el6.x86_64 (ABCDE)         01/17/2020      _x86_64_        (32 CPU)

09:40:59 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
^^
09:41:01 AM     14301  40113.46      0.00      0.00  oracle
09:41:01 AM     17504  77773.08      0.00      0.00  oracle
09:41:01 AM     23568  33665.38      0.00      0.00  oracle


09:41:01 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
^^
09:41:03 AM     14301  45416.00      0.00      0.00  oracle
09:41:03 AM     17504  80016.00      0.00      0.00  oracle
09:41:03 AM     23568  73636.00      0.00      0.00  oracle
09:41:03 AM     23574  38964.00      0.00      0.00  oracle


09:41:19 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
^^
09:41:21 AM     14301  81040.00      0.00      0.00  oracle
09:41:21 AM     25379      0.00     26.00      0.00  tnslsnr


#####################
2.通过查到的高IO的OS 进程ID,在数据库中排查相应的进程信息
SQL> select  b.spid,a.sid,a.username,a.program,a.machine,a.sql_id 
  2  from v$session a,v$process b 
  3  where a.paddr=b.addr  and b.spid=14301;

SPID                            SID USERNAME   PROGRAM                   MACHINE                   SQL_ID
------------------------ ---------- ---------- ------------------------- ------------------------- --------------------
14301                           678 AAABBB     oracle@ABCDE79407 (TNS   ABCDE79407              d1dbvc9xrad67
                                               V1-V3)


SQL> select sql_text from v$sql where sql_id='d1dbvc9xrad67';

SQL_TEXT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SELECT "AAAA","BBBBB","AMT" FROM "AAABBB"."CHG_1234567" "D"

#############
3.通过OS 进程信息,结合netstat命令来找到对应的源端IP
[oracle@ABCDE ~]$ netstat -anp|grep 14301
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
**tcp        0      0 ::ffff:192.168.1.250:1521    ::ffff:192.168.1.111:44418  ESTABLISHED 14301/oracleaaaaanew** 
[oracle@ABCDE ~]$ netstat -anp|more
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 127.0.0.1:26880             0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN      -        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值