一次客户的监控人员反应监控人员某数据库无法执行
sql
,呈现
hang
死的症状。当我们进入现场,的确也发现数据库无法正常登录,而且已经
hang
住 了 , 于 是 乎 , 第 一 时 间 一 个 同 事 就 收 集 了 相 关
trace
信 息
(
systemdump
),暂时重新恢复了系统。
但是这只是临时恢复了系统,至于数据库为什么好端端的
hang
住了,
客户还是要我们提供些说法。庆幸的是,这套数据库还没有正式上线,算
是不幸中的万幸吧。那作为
DBA
,就得解决这种疑难杂症呢,把根本原
因找出来,以免再次发生,这也是咱本分所在嘛。
首先弄清楚数据库环境配置是这样的
:
Redhat Linux 5.6 & ORACLE 11.2.0.3
,单实例
考虑到数据库
hang
死的情况多数是因为互相等待导致的,你不让
我,我不让你,不就陷入僵局嘛。所以我们需要理清楚当前数据库里的
等待链。搞清楚,谁等谁,最终的那个等待者是谁,它为什么长时间阻
塞 他 人 , 把 这 些 弄 清 楚 , 基 本 上 很 多 问 题 也 就 迎 刃 而 解 。 但 是 这 个
systemdump
的确不是很好分析的,真的需要耐心,慢慢缕清关系才行。
我 们 先 是 检 查 数 据 库
alert
日 志 中 发 现 当 前 告 警 最 多 的 是
PMON
failed to acquire latch, see PMON dump
:
- 2 -
评论