Oracle Hang Manager

名词术语
1.Cross Boundary Hang

  交叉边界hang。在12.1.0.1中,hang manager可以检测database和asm之间的hang。
2.Deadlock or Closed Chain

  死锁或关闭链条。打破死锁链条的唯一方法是让其中某些会话完成其工作或被终止。
3.Hang or Open Chain

  hang或开放链条。从hang manager角度讲,hang就是一些会话无法进一步处理工作,这不是死锁或循环链条。hang or open chain有一个根本阻塞者,阻塞了这个链条中的其他所有会话,也包含一个被其它会话阻塞的最终等待者。
4.Immediate Waiter

  在open chain中,该会话被产生hang的根本会话所阻塞。
5.Quality of Service (QoS) Management

  QoS(服务质量管理)是数据库中自动的、基于策略的监控整个系统的负载请求的服务。管理应用需要的资源、调整系统配置,保障应用的性能。
6.Self-Resolved Hang

  自处理的hang。被hang manager检测到的已经不再存在的hang或死锁。

 Hang Manager

在诊断数据库问题的时候,经常会遇到数据库/进程hang住的问题。对于hang的问题,一般来说,常见的原因有以下两种:
1.死锁(cycle)。对于这种hang, 除非循环被打破,问题会永远存在。
2.某个堵塞者(blocker)进程在持有了某些资源后堵塞了其他进程,其它进程无法获取资源。
  可以把blocker分为直接堵塞进程(immediate blocker)和根堵塞进程(root blocker)。而root blocker在通常情况下会处于两种状态。
  (1)根堵塞进程处于空闲状态,对于这种情况,终止这个进程能够解决问题。
  (2)根堵塞进程正在等待某些和数据库无关的资源(例如:等待I/O),对于这种情况,终止这个进程也许能解决问题。但是,从数据库的角度来讲,这已经超出了数据库的范畴。

Hang Manager是从10.2.0.1被引进的。主要用途是检测和处理hang问题。随着版本的增加,功能也不断的被完善加强。但是,实际上从11.2.0.2开始,Hang Manager才实际开始解决hang问题,通过终止产生hang的根本会话或进程来实现。

Hang Manager只在RAC数据库中生效。

默认情况下,hang manager不会终止一个实例或者将实例从集群环境中剔除;也不会自动解决其检测到的hang问题。目前也不能解决ASM hang问题。

从12.1.0.1开始,如果rac集群中的QoS处于active状态,hang manager会使用QoS提供的附加信息来决定是否应该忽略或者解决一个hang问题。 如果QoS倾向于hang manager解决hang问题,hang manager会比平时使用更少的时间来检测和处理hang问题,而不是延迟处理。

在12.1.0.1之前,hang只会在数据库内部或者asm中被检测。从12.1.0.1开始,hang manager会检测数据库和asm之间产生的hang。

当hang manager 解决hang问题时,会在alert日志中给出一个ora-32701事件:

ORA-32701: Possible hangs up to hang ID=24 detected
Incident details in: /ee/oracle/oracle_base/diag/rdbms/orcl/orcl1/incident/incdir_1944098/orcl1_dia0_34930694_i1944098.trc
DIA0 terminating blocker (ospid: 28311778 sid: 3398 ser#: 1) of hang with ID = 24
     requested by master DIA0 process on instance 2
     Hang Resolution Reason: Automatic hang resolution was performed to free a
    critical database process.
     by terminating session sid:3398 with serial # 1 (ospid:28311778)

hang manager的基本步骤
1.分配一部分内存空间用于存放hanganalyze dump信息。这部分内存空间在每个节点的数据库实例上都存在

2.定期搜集hanganalyze dump信息(本地和全局)

  HM特性是针对RAC数据库的特性,hanganalyze的级别包括本地和全局。另外,负责搜集这些dump信息的后台进程是DIA0(这个进程从11g才被引入)。默认情况下每3秒钟搜集本地级别hanganalyze dump, 每10秒搜集全局级别hanganalyze dump

3. 分析搜集到的dump信息,并确认系统中是否存在hang

  每个实例都会拥有自己的DIA0进程,负责完成本地的hang分析。但是,对于RAC数据库,很多hang的情况会包含多个实例的进程。所以需要一个实例上的DIA0进程作为master,来对多个实例搜集到的信息进行分析。对于11g版本,节点号最小的实例的DIA0进程会成为HM的master进程。当然,在实例级别发生了重新配置后,主(master)DIA0 进程会重新在存在的实例中重新被选举出来

4. 利用分析的结果来解决hang问题。

hang manager信息查看:

SQL> select * from v$hang_info;
SQL> select * from v$hang_session_info;
SQL> select * from gv$hang_statistics;

   INST_ID STATISTIC# NAME                                               VALUE
---------- ---------- --------------------------------------------- ----------
         1          0 number of deadlocks detected and ignored               0
         1          1 number of hangs detected                               0
         1          2 number of local hangs                                  0
         1          3 number of global hangs                                 0
         1          4 number of transient hangs                              0
         1          5 hangs ignored due to high CPU on root‘s node           0
         1          6 hangs ignored due to high IO on root‘s node            0
         1          7 hangs ignored due to application contention            0
         1          8 hangs ignored due to long running operations           0
         1          9 hangs monitored due to archiving issues                0
         1         10 hangs ignored due to archiving issues                  0
         1         11 hangs ignored, blocked by remote database              0
         1         12 hangs ignored due to SQL parsing                       0
         1         13 hangs ignored due to dumping system state              0
         1         14 hangs ignored, instance termination required           0
         1         15 hangs ignored, only one active instance                0
         1         16 number of explicitly resolved hangs                    0
         1         17 number of self-resolved hangs                          0
         1         18 total self-resolved hang time in seconds               0
         1         19 minimum self-resolved hang time in seconds             0
         1         20 maximum self-resolved hang time in seconds             0
         1         21 number of HSC matched hangs                            0
         1         22 hangs resolved due to instance termination             0
         2          0 number of deadlocks detected and ignored               0
         2          1 number of hangs detected                               0
         2          2 number of local hangs                                  0
         2          3 number of global hangs                                 0
         2          4 number of transient hangs                              0
         2          5 hangs ignored due to high CPU on root‘s node           0
         2          6 hangs ignored due to high IO on root‘s node            0
         2          7 hangs ignored due to application contention            0
         2          8 hangs ignored due to long running operations           0
         2          9 hangs monitored due to archiving issues                0
         2         10 hangs ignored due to archiving issues                  0
         2         11 hangs ignored, blocked by remote database              0
         2         12 hangs ignored due to SQL parsing                       0
         2         13 hangs ignored due to dumping system state              0
         2         14 hangs ignored, instance termination required           0
         2         15 hangs ignored, only one active instance                0
         2         16 number of explicitly resolved hangs                    0
         2         17 number of self-resolved hangs                          0
         2         18 total self-resolved hang time in seconds               0
         2         19 minimum self-resolved hang time in seconds             0
         2         20 maximum self-resolved hang time in seconds             0
         2         21 number of HSC matched hangs                            0
         2         22 hangs resolved due to instance termination             0

46 rows selected.

SQL>
时间: 2024-08-28 21:15:49

Oracle Hang Manager的相关文章

【Oracle连接字符串】【Oracle Net Manager 服务命名配置】【PL/SQL 登陆数据库】

连接数据库的几个重要参数: 1. 登陆用户名:user: 2. 登录密码:password: 3. 存放数据库的服务器地址(server_ip)和端口(server_port): 4. 数据库名(db_name): 一.Oracle连接字符串 我们如果要连接db_name这个数据,除了用户名密码以外,还需要输入类似“server_ip:server_port/db_name”这样一个连接字符串. <add key="ConnectionString" value="Da

oracle的环境配置-OEM企业管理器-Oracle emterprise manager

OEM企业管理器-Oracle emterprise manager 安装oracle的时候自动安装的. 1.启动OEM [[email protected] oracle]$ emctl start dbconsole  --启动命令TZ set to PRCOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0  Copyright (c) 1996, 2005 Oracle Corporation.  All ri

Oracle Net Manager 测试监听服务

前几天因为工作需要,安装了Oracle 11g,但怎么都监听不了本机.打开 PL/SQL Devloper 也登陆不了.随删除之. 今天有时间,又把Oracle 安装上了,想着怎么才能监听.经过操作,现在成功,下面是 过程: 1. 安装完ORACLE 后,进入 配置与移植工具,选择 Net Manager 2. 配置监听程序和服务命名. 我使用的协议为 TCP/IP. 主机 :127.0.0.1 .端口 : 1521. 3. 打开 CMD,输入 sqlplus.exe sys/manager a

打开oracle enterprise manager console控制台失败

在Linux中打开oracle enterprise manager console控制台失败,请确认下面几个要点. 1看http后面没有s. 2看em的第一个缺省端口是1158端口,即:http://你的主机名或IP:1158/em 3看开启em的命令是:emctl start dbconsole. 一般说来,都是因为oracle enterprise manager 控制台没有启动.

Oracle Enterprise Manager快速重建

我们在使用Oracle时, 可以利用Oracle自带的EM(Enterprise Manager)来更方便的管理我们的数据库.但是有时候我们的em却有时候无法连接,造成这个问题的原因有好多,例如没有正确的配置hostname,或者操作系统的防火墙问题等等.如果出现了问题,我们能否快速的重建em呢?答案是肯定的.我们可以通过Oracle官方文档来参照.但是如果我们对于em里面如此多的配置命令和选项比较头大的时候,你就可以参照此文来重新创建EM. 首先需要设置好环境变量ORACLE_HOSTNAME

Oracle Net Manager 服务命名配置以及用PL/SQL 登陆数据库

我们知道,要连接一个数据库需要知道四个参数: 1. 登陆用户名:user: 2. 登录密码:password: 3. 存放数据库的服务器地址(server_ip)和端口(server_port): 4. 数据库名(db_name): 我们如果要连接db_name这个数据,除了用户名密码以外,还需要输入类似“server_ip:server_port/db_name”这样一个连接字符串. 如上所述,对于一个数据库连接,我们常常需要记住server_ip.server_port 和 db_name

oracle Net Manager 服务命名无法配置(无法新建、添加服务名)

今天在配置oracle Net Manager 配置服务命名的时候总是无法配置,以前配置的服务名都显示不出来,然后点击绿色添加按钮也没反应,因为先前我修改了oracle\product\10.2.0\db_1\NETWORK\ADMIN下的tnsnames.ora文件 查了半天才发现重命名服务名前面多了个空格,把那个空格去掉就没事了 参考资料:http://maccter.iteye.com/blog/1483276

How to Install/Deinstall Oracle Workspace Manager (文档 ID 263428.1)

In this Document   Goal   Solution   References APPLIES TO: Workspace Manager - Version 9.0.1.0 to 12.1.0.1 [Release 9.0.1 to 12.1]Information in this document applies to any platform.Checked for Relevance on 30-May-2014. GOAL This article is for DBA

Oracle Enterprise Manager 11g 输入用户名和口令 点击“登录”按键后没反应,也不报错,是什么原因?

在tnsnames.ora文件中检查设置好像没什么问题,用sqlplus也可以正常操作orcl 问题找到了,其实可简单,https://localhost:1158/em/console/logon/logon#,我用的是IE8打开这个地址,后来注意到左下角的状态栏里显示有“网页上有错误”的提示,于是改用Firefox打开,输入用户名和密码,登录就正常了.原因是IE8在解析这个页面时,部分js代码解析错误,我想这个跟微软的垄断霸王标准有关,他的很多规则不符合国际标准.所以电脑上还是多装个浏览器比