码迷,mamicode.com
首页 > 数据库 > 详细

Oracle Hang Manager

时间:2016-04-13 12:57:27      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:

名词术语
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> 

 

Oracle Hang Manager

标签:

原文地址:http://www.cnblogs.com/abclife/p/5386253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!