文档内容
|
|
用途 |
|
|
详细信息 |
| 概述: |
| 术语: |
| 12.1.0.1 的 Hang 管理器 |
| ORA 32701 事件 |
| 初始参数 |
|
V$ 视图 |
| V$HANG_INFO |
| V$HANG_SESSION_INFO |
| (G)V$HANG_STATISTICS |
这个文档介绍了 RAC 数据库下 Hang 管理器的基本知识。
Oracle 数据库从 10.2.0.1 版本开始推出了 Hang 管理器功能,Hang 管理器能够及时发现数据库 Hang 问题,而且,如果启用了 Hang 解决功能,Hang 管理器还能及时解决发现的 Hang 问题。随着版本的升级,Hang 管理器完善了依赖的等待事件架构和提高了自身功能。然而,只有在 11.2.0.2 数据库上,Hang 管理器通过终止会话或进程方式解决 Hang 问题。在 12.1.0.1 版本上,这依然是默认的解决 hang 问题方式。
只有在 RAC 数据库上,Hang 管理器才有效,可以检查初始参数 CLUSTER_DATABASE 决定是否是 RAC 数据库,值 TRUE 表示是 RAC 数据库。
自从 11.2.0.2 数据库,Hang 管理器通过终止 root 会话或进程解决它发现的 Hang 问题。默认情况下,Hang 管理器不会造成数据库实例终止和节点驱逐,它也不解决所有发现的 Hang 问题。以下几种情况 Hang 管理器不解决 Hang 的问题。1. 如果应用问题造成的 Hang,Hang管理器等待应用用户去解决这个 hang。2. 如果持有 root 阻塞会话的实例正面临 CPU/IO 性能压力,Hang 将被延迟解决,在延长的时间内,Hang 有可能自动消失。3.不解决任何 ASM hang 问题。
从 12.1.0.1 版本开始,只要启用了 QoS,Hang 管理器利用 QoS 提供的信息决定是否忽略或解决 Hang 问题。只要 QoS 允许 Hang 管理器解决 Hang 问题,这将比 Hang 管理器发现和解决 Hang 更快,或者 Hang 解决可能被延迟。
在 12.1.0.1 之前的版本,Hang 管理器仅能发现数据库或者 ASM 上的 hang 问题,不能发现数据库和 ASM 之间的 Hang ( Cross Boundary Hang),并且没有方式去发现它。在 12.1.0.1 版本上,完善后的 Hang 管理器,能够发现 ASM 和数据库之间的 Hang,记录信息到各种trace 文件中,协助诊断这类 hang 问题。
当 Hang 管理器解决了 Hang 问题后,它将 ORA-32701 告警信息写到 alert 日志中。下面是 ORA-32701 样例:
上述告警日志表示 Hang
ID 是 24 的 hang 被解决。列出了 root 会话的 ID,serial 信息,进程 ID,会话运行的数据库实例 ID。最后,Hang
管理器简短地描述了为什么解决这个
Hang。针对这个例子,一个用户会话阻塞了一个关键的数据库进程,导致用户会话被终止,保证被阻塞的关键数据库进程继续运行。
当前,Hang 管理器没有可以调整的初始参数,只有 Oracle 支持工程师能够调整 Hang 管理器的运行方式。
Hang 管理器的信息记录在数据字典视图,Oracle 数据库手册描述了这些视图。下面仅是部分视图的概述。更详细的视图信息,请参考 Oracle 数据库手册。
这个视图用于查看 Hang 管理器发现的 Hang 和死锁信息,但它不含已经解决的 Hang 信息。仅包含 32个活动的 hang 信息。
这个视图用于查看每个 Hang 阻塞链上的会话信息,仅包含 Root 会话和其余前 20个会话的信息。
这个视图包含 Hang 管理器发现的 Hang 和死锁的统计信息。例如:发现的 Hang 和死锁的数量,Hang 管理器解决的 Hang 数量,忽略的 Hang 的数量和 Self-resolved Hang 的数量等。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31393455/viewspace-2130456/ ,如需转载,请注明出处,否则将追究法律责任。