当前位置:Gxlcms > 数据库问题 > Oracle Hang Manager

Oracle Hang Manager

时间:2021-07-01 10:21:17 帮助过:2人阅读

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

标签:

人气教程排行