博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库无响应问题的紧急处理和分析
阅读量:2448 次
发布时间:2019-05-10

本文共 2120 字,大约阅读时间需要 7 分钟。

黄金周里处理了一起紧急的问题,在外面幸亏有同事帮忙协助,等我赶回家去,赶紧继续处理。
首先问题是在晚饭时间左右开始发生,但是过了没多久又恢复了,所以这个问题暂时就没有引起太多关注,但是后面发现问题开始反复,而且数据库的负载开始急剧提升,后面也开始收到了不少的报警信息,一下子问题就变得紧急起来。
环境是10.2.0.3的数据库,在Solaris 10环境中。
当时的DB time情况如下,从负载来看,压力是非常大的,数据库几度出现了无响应的情况,这对于核心业务而言还是影响很大的。
这是一套很稳定的数据库,很稳定的说法主要是很少有变更,而且多年来系统一直表现稳定。
查看资源的使用情况如下,可以看到在问题发生时段,没有大批量的事务,没有大批量的资源消耗。
那看看等待事件,发现都是和锁相关的。根据wait class的指示是和并发相关的。如果看到如此的情况,而且很紧急,想必是很纠结的。
我们来看看问题时间段的SQL情况,看看是否因为SQL问题导致了严重的等待和锁争用。
这个地方就有一些误区,看SQL语句,默认会定位到top的几个SQL语句,细看所占的比例也蛮高,所以同事的注意力就集中在了SQL优化上,但是查看语句是一个很简单的查询,而且也是走了唯一性索引,那问题的症结在哪里呢。
可以从awrsqrpt的报告看出端倪,那就是存在大量的等待。其实执行的时间还是很短的。
那问题的原因怎么解释,到底在等待什么呢。这个需要对整个系统的架构和技术细节需要有一些了解。
首先现在的网卡使用了逻辑IP,如下所示。服务器存在两个物理网卡,现在对外使用的是一个网卡1(e1000g0)上绑定的一个逻辑IP,当然这么做也是有一些历史原因的。
而对系统的架构有一定的了解,会发现其实和另外一个数据库有一些关联。怎么解释呢,就是在问题发生的时候,另外一台数据库的负载也急剧提升。
我直接到另外一台服务器上查看发现存在大量的活跃会话,而在等待的就是下面的这样一个语句。看起来也没有什么问题,如果查看执行计划就会发现其实另外一台服务器中是使用了DB link来访问现在出问题的数据库。

update enthralcert set logout_date = sysdate, status = 0 where cert_number in (select cert_number from enthralcn where cn = lower(:cn))

其实问题的原因也无须掉书袋,经过快速定位和分析,就是因为这样的DB link,听起来好像也不大合理,怎么会有这样的问题呢,问题服务器上存在着大量的数据库连接,会直接更新本地表,间接通过db link来引用其他的表,在业务稳定的时候没有差别,在一定程度上和设置的逻辑IP有一些关系,网络一旦发生抖动和不稳定,就会把这个网络的延迟放大,传播,大批量的会话开始阻塞,等待,就会变成活跃会话,数据库负载急剧提升,如果应用端持续调用都存在等待,系统资源就会逐渐耗尽,导致出现无响应的情况,这种问题的解决方案目前是采用了折中的一个方案,既然通过db link,我们把一部分的网络压力放在物理网卡2上。在tnsnames.ora中修改对应的IP和端口即可。至少在一定程度上能够极大缓解问题,后续会建议从应用层面,系统层面来持续改进。
当然处理问题的过程中,发现有大量的等待,首要的等待就是library cache的争用,这个可以从下面的图示看出。可以看到shared pool确实很紧张,而且同时buffer cache其实使用一点都不紧张,我们重置一下SGA的组件,这个地方需要提醒一下,在这种情况下需要评估影响范围。
我印象中是存在一个bug,会导致实例直接宕掉,评估了之后决定先改进一下。alter system set shared_pool=xxx运行下去,实例还真宕掉了。

Errors in file /U03/app/oracle/admin/test/bdump/test_mman_944.trc:

ORA-00600: internal error code, arguments: [kmgs_pre_process_request_6], [1], [107], [18], [3], [0xA7024DB68], [], []
Mon Oct 3 22:45:17 2016
MMAN: terminating instance due to error 822

赶紧把实例启动起来,因为有应用重连机制,所以问题的影响还在可控范围,火速调整shared_pool的大小,重启后,问题就得到了一定的缓解,当然问题的根本还是设计不当采用了大量的DB link的方式,把问题的影响放大。需要引以为戒。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2125850/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2125850/

你可能感兴趣的文章
ipad iphone开发_如何在iPhone或iPad上的消息中快速选择表情符号
查看>>
在windows使用gpu_如何选择Windows 10上游戏使用的GPU
查看>>
什么是适用于iPhone和iPad的iOS最新版本?
查看>>
成为产品不一定是坏事
查看>>
Ubuntu 18.04 LTS现在在Microsoft Store中
查看>>
如何检查已安装的Ubuntu版本
查看>>
如何在Windows 10上禁用附近共享
查看>>
gmail_Gmail将提供自毁电子邮件
查看>>
google 禁止广告_是否应禁止针对个人的广告?
查看>>
Plover.io在本地设备之间快速共享文件
查看>>
如何在OS X照片中禁用iCloud照片同步
查看>>
Minecraft的官方网站分发了受恶意软件感染的皮肤
查看>>
word模板快速填内容_如何快速轻松地在Word中选择内容块
查看>>
如何在Word 2013中直接从一个表导航到另一个表
查看>>
twitch 录像_如何通过NVIDIA GeForce Experience将您的PC游戏玩法传送到Twitch
查看>>
linux gnome_在Gnome中学习这些鼠标技巧,以获得更高效的Linux体验
查看>>
打印机疑难解答_使用内置电源疑难解答改善Windows 7中的电池寿命
查看>>
drupal加密_立即更新您的Drupal网站,否则黑客可能将其变成加密货币矿工
查看>>
vimrc配置 鼠标光标_在“提示”框中:即时调整窗口大小,包含鼠标光标并了解电池配置...
查看>>
询问HTG:安装XBMC附加组件,缩小视频以进行移动播放,自动更改默认打印机
查看>>