如何在五分钟内快速反馈Oracle数据库问题

我们团队内部有一个问题升级机制,即任何故障(业务反馈问题、hang、或者crash等)必须立即升级给直接主管,并在10分钟之内第二次反馈情况。这要求一线团队对基本问题的侦查方法十分了解,并且熟悉环境。当然,绝大部分的客户环境都部署了OSWatcher之类的工具(这些工具我在之前发表的文章《Oracle DBA应该掌握的9个免费工具》中谈到过,详见文末的往期作品链接),所以效率会非常高。但有些客户环境由于条件限制部署不了这些工具。这种情况下,我们怎样才能在10分钟内及时反馈数据库情况呢?

对于一个大团队来说,及时反馈问题,比傻乎乎的去分析更重要。

节假日期间,如果你碰巧分到值班的活,那就更应该读一读这篇文章。

你正一边忙着搞MySQL数据库,一边滑动手机抢节日红包。背后的师父喊了,猴儿,你看看200.123怎么了?

你赶紧把MySQL数据库上正在敲的命令撤回,关闭窗口。(不要小看这个动作,随时关闭不用的窗口,是减少人为失误的法宝之一。)

通过堡垒机你登录到123。

第一步 先看看系统资源使用情况

没有换页,运行队列没问题,等待队列平时只有60左右,今天接近200。

CPU空闲率降低了10个百分点,IOwait增加了三五个点。

第二步 检查日志有没有错误

 

单机系统,先检查alert日志,如果里面有错误,再看相应的trace日志。

确认日志里是否有报错。

如下的日志文件中,我们可以看到,没有报错。同时我们还能看到,存在联机日志写的时候,cannot allocate新日志的情况,如果经常发生,考虑增加日志组,或者加大日志文件大小。

第三步 查等待事件

 
其实也可以把查等待放在第二步来做。


 

看到这么多等待事件,千万别慌。除了排除所谓的“空闲类等待事件”之外,还要注意,有的等待事件并不是很值得关注。

就这里显示的内容来说,我们能看到:

  • 有一个锁等待,属于正常范围。
  • 4个scattered read
  • 100多个sequential read,稍微有点多。
  • 800多个read by other session,多的有点离谱了。

这种情况发生了,就要抓大放小,重点关注800多个这个事件相关的SQL语句、应用程序或终端。

并没有特殊的终端连接特别异常。

我们看到所有这些连接也并非都是同一个SQL_ID执行的。

不过别急,进一步把一个个SQL ID解析成SQL语句后,我们发现,这800多个等待“read by other session”的会话,其实是2个语句:

它们的共同点是都对其中一个表进行查询。

通过执行awrsqrpt.sql语句来进一步分析单个sql_id,我们发现,执行频率很高:

 

相对于近亿条记录的表关联查询来说,每次执行所消耗的IO,是正常的。

表和索引的统计信息都是一天前刚搜集的。实际记录数与统计信息搜集的相比,差异在1%以内,SQL的执行计划没有发生变化。

因此,猴儿反馈给师父,数据库本身没有问题。

某业务执行频率异常导致业务慢(从sqlrpt的信息来看,执行一个查询要耗时3分多钟),CPU利用率比平时高10个点左右。

执行频率有多高呢,1小时执行了上百万次。这个业务正常一小时执行上万次就了不起了。

整个CASE,从师父发出指令,到猴儿反馈信息给师父,正常应该在5分钟以内。

作为一线的工程师来说,最重要的并非是立即解决问题,而是迅速反馈,让更合适的人介入处理,避免问题蔓延。

然后呢?

然后,如若是应用问题,你应该持续跟进应用改进,直到这个问题最终判定为止,形成知识库文档。

如若是数据库本身有问题,问题流转到了更专业的人手上,但作为问题第一负责人,仍然要跟着学习借鉴别人的问题思路,直到问题解决,形成文档,最后这个问题是一个闭环。

  
知识点延伸

 

1、 read by other session等待事件

  • 这个等待事件是从buffer busy wait这个等待事件剥离出来的。
  • 什么情况会发生这个等待事件呢?

    (1)某个会话正在查询某个表的数据,把这些数据从磁盘里读到高速缓存区中,而其他会话这时如果也在请求相同的数据块。如果响应的数据块还没完全读到缓存中,就会发生这样这个等待事件。

    (2)因为有会话正在读取数据在内存,因此该事件同时会伴随着sequential read或者是scattered read,一般情况不会孤立存在。

  • 通常怎么做?

    (1)由应用侧停止发起异常连接数的业务可能是最好的方式,但不一定能做到。

    (2)在应用侧的授权下,kill掉相应会话是可选的方式。

2、 单机数据库,如果这些查完都没有问题怎么办?

上述检查中,关于主机方面,主要看了CPU、内存使用情况。因此,还可以检查磁盘IO信息(iostat,sar –d等),还可以看看网络怎么样(top/topas,netstat等)。以及操作系统方面的日志信息。

3、如果是Oracle RAC数据库呢?

  • 检查多个实例的情况
  • 同时应该看看CRS的日志
  • 检查ASM的情况,ASM默认的参数偏小 

4、这个case中,有没有可能是SQL本身的问题?

  • 如果不是因为有SQL基线,确定SQL执行计划没变,正常应该确定SQL是否有优化余地。
  • 做一线运维,尽可能去做好所负责的数据库基线管理,并定期更新。这非常有助于快速分析和定位问题。

作者介绍:杨志洪

  • 【DBA+社群】联合发起人
  • 数据管理专家。Oracle ACE、OCM、 SHOUG/ZJOUG核心成员、DAMA会员/CCF会员,译著《Oracle核心技术》。
  • 在Oracle OOW、DTCC及2015Oracle数据库技术大会等全国性技术会议上发表主题分享,并主办了2014Oracle全国技术巡讲。
  • 2015年创立DBA+社群迅速成为全中国最大的涵盖数据架构师、DBA及中间件的专业社群。


时间: 2024-09-13 07:25:43

如何在五分钟内快速反馈Oracle数据库问题的相关文章

[20130218]快速安装oracle数据库.txt

[20130218]快速安装oracle数据库.txt 快速安装windows的例子:(windows的环境没有测试过) windows下执行:dbca -Silent  -createDatabase -gdbName test -templateName %oracle_home%\assistants\dbca\templates\General_Purpose.dbc -characterSet ZHS16GBK  -nationalCharacterSet AL16UTF16 -dat

快速查出Oracle数据库中锁等待的方法_oracle

通常在大型数据库系统中,为了保证数据的一致性,在对数据库中的数据进行操作时,系统会进行对数据相应的锁定. 这些锁定中有"只读锁"."排它锁","共享排它锁"等多种类型,而且每种类型又有"行级锁"(一次锁住一条记录),"页级锁"(一次锁住一页,即数据库中存储记录的最小可分配单元),"表级锁"(锁住整个表).若为"行级排它锁",则除被锁住的该行外,该表中其它行均可被其它的

用AutoCAD五分钟内完成三维足球建模

因为想讲解得清楚点,文字是后期制作,所以字母在各图间代表没有统一,请谅解. 文章末尾有制作过程的动画演示. 首先把要用到的CAD命令交代一下,全在工具条上. 命令解释例图 下面是关键步骤截图 1.在俯视图中,先画边长50的正五边形和正六边形,再根据图上的图样画圆和其他辅助线 图1 2.以C圆的中心点为圆心,旋转正六边形的中心垂线从C圆的象限点到B点,交于与正五边形的中心垂线为O点 图2 3.删除多余的辅助线.以O为圆心OB为半径作D圆,复制园B,圆心落在D圆象限点上 图3

QQ付费群规则变了吗? 入群5分钟内自动禁言 被T的话退钱

很多人都是知道现在QQ有个付费群功能.以往加群需要你填写一些验证信息给管理员,管理员看你顺眼就放你进去,不顺眼你就进不去了.另外还有一些打广告的人难免会被管理员误判给放进去,令管理员苦恼不已,总有审核失误的时候. 但是QQ付费群的推出几乎解决了进不了群.还有打广告的问题.因为付费群你只要付费了就可以直接进群,无需审核,另外一些奔着打广告去的人,因为成本的问题肯定也会少很多.再次,付费群的开通更鼓励了一些用心经营QQ群的人(不要觉着QQ群只能聊天). 付费群功能养肥了一部分人,但是总有一些人把本来

Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果

又来一篇五分钟做设计啦~ 本篇将教大家如何运用Design内建工具Blend Paths在五分钟内作出超炫效果 范例最后成品 01 开启一个新专桉后,使用Paintbrush(快捷键B)在画面上拉出你想要的线段或是文字 我以点部落的英文DotBlogs为例,如下图 需要提醒的是,文字的同一个字母请一笔到位 以英文字母B来说,也是要一笔完成,不能分两笔,如下: 不然等等在使用Blend Paths时,会被判断成两条线段,做不出你要的效果喔! 02 接下来,把绘好的线段或是文字全选后複製一份,拖拉到

“偷菜”游戏开发商“五分钟”月入300万元

1500万"小偷"撑起大买卖 "偷菜"游戏开发商月入300万元"你没有偷过菜?"王骏睁大着眼睛看着记者. 自称城市白领的王骏最近几个月成了勤勤恳恳的"菜农":种菜.收菜,还不时把朋友的菜往自己家里偷. 当然,这一切都不是在现实中,而是在网络上. 如同半年前几乎每个SNS(Social Network Site,即"社交网站"或"社交网")平台都争相推出"停车大战"和&

谷歌一家宕机五分钟 全球互联网流量雪崩40%

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 人类社会的运转,似乎已经离不开强大的谷歌(微博),谷歌对于全球互联网的运营,影响有多重要?美国时间6月16日下午,谷歌发生了五分钟的宕机事故,第三方专业公司的统计显示,在这个"黑色五分钟"内,全球互联网的访问流量,雪崩了40%. 谷歌这次宕机,发生在下午3点50分到3点55分之间.该公司表示,故障涉及了网络搜索.YouTu

【风之语.'决定命运的五分钟'】

[风之语.'决定命运的五分钟'] 中途岛海战,日本联合舰队断剑折戟.在短短五分钟内形势逆转,四艘航母被打沉,使得中途岛海战成为太平洋战争的转折点.日本人归结于运气不好.其实不然:   首先日本通讯密码被美国人破译,是日本在明处,美国在暗处:   其次,美国的军事生产能力远超日本,珊瑚岛海战后受重创的约克城号航母以出乎日本人预期的速度被修复,大大增强了美军的实力,而日本人却不知道:   三,日本急于求胜想跟美国决战,加上日本之前海战基本大胜,有些轻敌:   四,南云忠一作为指挥官,缺少判断能力,对

HP-EVA4400故障导致的oracle数据库丢失的恢复过程

一.故障描述 整个EVA存储结构是由一台EVA4400控制器,三台EVA4400扩展柜和28块FC 300G硬盘构成的.由于两块磁盘掉线导致存储某些LUN不可用,某些LUN丢失.由于EVA4400是因为某些磁盘掉线,从而导致整个存储不可用.因此接收到磁盘以后北亚工程师先对所有磁盘做物理检测,检测完后发现没有物理故障.接着使用坏道检测工具检测磁盘坏道,发现也没有坏道.磁盘坏道检测日志如下: 图一: 二.备份数据 考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一操作不