Oracle 11g 新特性 – HM(Hang Manager)簡介
在這篇文章中我們會對Oracle 11g 新特性—hang 管理器(Hang Manager) 進行介紹。我們需要說明,HM 只在RAC 資料庫中存在。
在我們診斷資料庫問題的時候,經常會遇到一些資料庫/程式 hang住的問題。對於hang的問題,一般來說,常見的原因有以下兩種。
死鎖(cycle)。對於這種hang, 除非迴圈被打破,問題會永遠存在。
某個堵塞者(blocker) 程式在持有了某些資源後堵住了其他程式。當然,根據堵塞的情況,我們可以把blocker
分為直接堵塞程式(immediate blocker)和根堵塞程式(root blocker)。而root blocker 在通常情況下會處於兩種狀態。
2.1 根堵塞程式處於空閒狀態,對於這種情況,終止這個程式能夠解決問題。
2.2 根堵塞程式正在等待某些和資料庫無關的資源(例如:等待I/O),對於這種情況,終止這個程式也許能解決問題。但是,從資料庫的角度來講,這已經超出了資料庫的範疇。
而從資料庫的角度來講, oracle有幾種死鎖的發現機制。 在這篇文章中我們會介紹11g RAC的新特性 hang管理器。hang 管理器的基本步驟是。
1.分配一部分記憶體空間用於存放hang analyze dump 資訊。
2.定期蒐集hang analyze dump資訊(本地和全域性)
3. 分析蒐集到的dump資訊,並確認系統中是否存在hang。
4. 利用分析的結果來解決hang問題。
接下來,我們對每個步驟進行具體的介紹。
步驟1: ORACLE 會分配一部分記憶體空間,我們稱之為 hang analysis
cache,用來存放蒐集的hang analyze dump i資訊。這部分記憶體空間在每個節點的資料庫例項上都存在。
步驟2:oracle 會定期蒐集hang
analyze 資訊,由於,HM特性是針對RAC資料庫的特性,hang analyze的級別會包括本地和全域性。另外,負責蒐集這些dump 資訊的後臺程式是DIA0(這個程式從11g才被介紹)。預設情況下每3秒鐘蒐集本地級別hang analyze dump, 每10 秒蒐集全域性級別hang analyze dump。
步驟3:因為,每個節點都會蒐集hang
analyze dump 資訊,那麼,意味著每個例項都會擁有自己的DIA0程式,負責完成本地的hang 分析。但是,對於RAC資料庫,很多hang的情況會包含多個例項的程式。所以,我們需要一個例項上的DIA0 程式作為master,來對多個例項蒐集到的資訊進行分析。對於11g版本,節點號最小的例項的DIA0程式會成為HM的master程式。當然,在例項級別發生了重新配置後,主(master)DIA0 程式會重新在存在的例項中重新被選舉出來。
對於hang的問題,HM採用以下的機制來進行檢測,當HM分析過幾個hang analyze dump(每30秒進行一次分析,至少經過三次分析)後,就會發現有一些程式之間存在著等待關係(我們可以稱之為open chain),而且在這段時間之內沒有任何的改變(例如,一直等待相同的等待事件),那麼,我們就可以懷疑,這些程式之間出現了hang的情況。而在進一步的驗證之後,的確發現這些程式之間存在著等待關係,那麼就會找到這個等待鏈(open chain)的根阻塞程式,並嘗試通過終止阻塞程式的方式來解決這個hang.當然,對於死鎖(dead lock)這種情況,我們採用的方式是,終止等待環中的一個程式。下面的圖形說明了以上的基本邏輯。
步驟4: 在確認hang的確發生之後,根據hang的型別選擇對應的解決方案。對於HM 來說,如果這個hang線管的程式滿足以下條件之一,那麼HM就無法解決這個hang.
1. 除資料庫以外的其他層面的程式也和這個hang相關,例如:asm例項的程式。
2. 是由於使用者應用層面導致的,例如:TX鎖。
3. 並行查詢
4. 需要使用者手動干預。例如:阻塞程式在等待“log file switch ”(這種等待很可能是由於歸檔目錄對應的filesystem空間不足導致的。即使HM中知道了阻塞程式,hang的情況也無法得到解決)。
如果,hang是HM無法解決的型別,那麼HM會繼續跟蹤這個問題。
而對於HM能夠解決的問題,其解決的辦法就是終止根阻塞程式。但是,如果這個阻塞程式是oracle 的主要後臺程式,終止它就會導致例項crash。所以,HM在解決hang的時候,也存在解決範圍。這個範圍是由隱含引數"_hang_resolution_scope" 控制的,這個引數可以有三個值off(預設值,也就是說HM不會去解決hang),process(允許HM終止阻塞程式,如果該程式不是主要的後臺程式),instance(允許HM終止阻塞程式,即使該程式是主要的後臺程式。終止該程式會導致例項終止)。
最後,我們對和HM 相關的一些引數和trace 檔案進行簡單的介紹。
引數:
_hang_resolution=TRUE 或者 FALSE。這個引數用於控制HM是否解決hang。
_hang_resolution_scope=OFF,PORCESS或者 INSTANCE。這個引數用於控制HM解決問題的範圍。
_hang_detection= <number>。 HM檢測hang的時間間隔,預設值為30(秒)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22990797/viewspace-1966986/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 11g 新特性簡介Oracle
- 【ORACLE新特性】11G 分割槽新特性Oracle
- Oracle 11g 新特性Oracle
- 【DATAGUARD】DG系列之11g新特性簡單介紹
- 12c新特性-Oracle Sharding簡介Oracle
- oracle 11g 的新特性Oracle
- oracle enterprise manager配置簡介Oracle
- Oracle:19c 新特性——Memoptimized Rowstore 簡介OracleZed
- Oracle 11g 新特性之DRCPOracle
- Oracle 11g新特性:Result CacheOracle
- Oracle 11g 新特性(轉載)Oracle
- Oracle 11g新特性之SecureFilesOracle
- oracle DG 11g新特性彙總Oracle
- ORACLE 11G新特性之列新增操作Oracle
- Oracle 11g 新特性 -- SecureFiles 說明Oracle
- oracle 11g 新特性 表壓縮Oracle
- Oracle 10G First Release的新特性簡介(下) (轉)Oracle 10g
- Oracle 10G First Release的新特性簡介(上) (轉)Oracle 10g
- Oracle 11g 新特性 -- SQL Plan Management 示例OracleSQL
- 天天學習ORACLE(三)-11G新特性Oracle
- oracle 11g 新特性 磁碟組檢查Oracle
- Oracle 11G 新特性 Automatic block repairOracleBloCAI
- 【RAC】11gR2 新特性:Oracle Cluster Health Monitor(CHM)簡介Oracle
- 11g R2新特徵:oracle cluster health moniter (CHM) 簡介特徵Oracle
- Oracle 11g DG新特性--Automatic block repairOracleBloCAI
- ORACLE 11g新特性-統計值掛起Oracle
- oracle 11g 新特性 data recover AdvisorOracle
- oracle 11g 新特性 Flashback Data Archive 說明OracleHive
- Oracle 11g的新特性分割槽:System PartitionOracle
- 11g新特性--Oracle 11g 閃回資料歸檔Oracle
- ES2015新特性簡介
- 簡短介紹 C# 6 的新特性C#
- Rational Quality Manager V1.0.1 的新特性
- 新特性:/dev/shm對Oracle 11g的影響devOracle
- 【11g新特性】Oracle 加密表空間-可下載Oracle加密
- oracle 11G新特性--SYSASM 角色--用來管理ASMOracleASM
- oracle 11g R1 asm 磁碟組新特性OracleASM
- oracle 11g新特性之密碼大小寫敏感Oracle密碼