标签:
名词术语
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>
标签:
原文地址:http://www.cnblogs.com/abclife/p/5386253.html