系統HANG住了,怎麼辦?
如果系統HANG住了,這個時候做一個SYSTEM STATE DUMP,對於分析HANG的原因十分重要。但是很多情況下,系統HANG住了就無法登入,那麼如何進行分析呢?
METALINK DOC :359536.1提供了一些好的辦法,在這裡和大家共享:
支援的資料庫版本:9.2.0.1-10.2
平臺(部分是UNIX平臺,部分適用於所有平臺)
1、10G以前,使用DBX,GDB之類的工具:
找到一個前臺程式的PID(ps -ef|grep LOCAL),然後用gdb $ORACLE_HOME/bin/oracle 進行跟蹤
:~> ps -ef|grep LOCAL
oracle 26358 26357 0 09:52 ? 00:00:00 oracleora9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 27848 27810 0 10:41 pts/3 00:00:00 grep LOCAL
:~> gdb $ORACLE_HOME/bin/oracle 26358
然後執行:print ksudss(10)
(gdb) print ksudss(10)
[Switching to Thread 4154533552 (LWP 26358)]
warning: Unable to restore previously selected frame.
$1 = 181773020
Current language: auto; currently asm
這個時候在UDUMP或者BDUMP下會生成一個TRACE檔案。裡面包含SYSTEM STATE DUMP
除了透過print ksudss(10)進行systemstate dump,還可以進行下面的dump
print ksdhng(3,1,0) 相當於oradebug hanganalyze 3
print ksudps(10) 相當於oradebug dump processstate 10
print curdmp() 相當於oradebug call curdmp(也就是oradebug dump cursordump)
print ksdtrc(4) 相當於oradebug dump events 4(這裡參數列示level,1–session,2–process,4–system)
print ksdsel(10046,12) –相當於為attach的程式設定10046事件level 12
print skdxipc() –相當於oradebug ipc
print skdxprst() –相當於oradebug procstat
當然如果能用oradebug,就應該使用oradebug,畢竟方便得多,也更安全。
2、10G下sqlplus -prelim
如果10G,可以使用sqlplus -prelim選項強制登入
export ORACLE_SID=ora9
sqlplus -prelim '/ as sysdba'
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
3、如果上述都不行,可以使用pstack把堆疊資訊取出來,另外也可以使用truss, tusc 之類的工具看看到底在等什麼
資料庫HANG住是計較頭痛的事情,如何找到HANG住的原因,是DBA必須面臨的課題。當資料庫HANG住的時候,大多數DBA往往是透過V$SESSION_WAIT檢視來進行分析。實際上Oracle有一個十分有效的工具----hanganalyze。HANGANALYZE可以十分清晰的將HANG住的資訊告訴DBA,便於DBA進行進一步分析。
Hanganalyze是從Oracle 8i r2(8.1.6)開始提供的,其用法十分簡單:
ALTER SESSION SET EVENTS 'immediate trace name HANGANALYZE level
或者
ORADEBUG hanganalyze
比如:
sql>oradebug setmypid;
sql>oradebug hanganalyze 3;
對於
10 Dump all processes (IGN state)
5 Level 4 + Dump all processes involved in wait chains (NLEAF state)
4 Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)
3 Level 2 + Dump only processes thought to be in a hang (IN_HANG state)
1-2 Only HANGANALYZE output, no process dump at all
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-682423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 執行DDL語句 hang住了怎麼辦?MySql
- mac上APP應用卡住了怎麼辦MacAPP
- 正在載入個人設定卡住了怎麼辦?
- 資料庫Hang住怎麼辦 - HANGANALYZE資料庫
- win10系統更新卡住了怎麼辦_win10更新卡住不動解決方法Win10
- 記一次資料庫hang住了資料庫
- 資料庫Hang住怎麼辦 - HANGANALYZE[final]資料庫
- win10系統磁碟全部被佔用怎麼辦 win10系統磁碟滿了怎麼辦Win10
- CRM系統過於繁瑣怎麼辦?
- win7系統閃屏怎麼辦Win7
- mac系統不能識別u盤怎麼辦Mac
- WindowsXP系統還原點丟失怎麼辦Windows
- win8.1系統無法睡眠怎麼辦?
- win8系統停止服務怎麼辦
- /var檔案系統滿了,該怎麼辦?
- 系統檔案丟失怎麼辦 系統檔案損壞的解決辦法
- windows10系統下誤刪系統變數path怎麼辦Windows變數
- 未來系統擴充套件,報表怎麼辦?套件
- windows 7系統下的硬碟狂閃怎麼辦Windows硬碟
- win7系統下的硬碟故障怎麼辦?Win7硬碟
- 沒有收到win10系統推送怎麼辦?Win10
- win8系統沒有聲音怎麼辦?
- Windows系統EFS加密出了問題怎麼辦?(轉)Windows加密
- MySQL被慢sql hang住了,用shell指令碼快速清除不斷增長的慢sql的辦法MySql指令碼
- win10 誤刪檔案怎麼辦_win10系統誤刪檔案怎麼辦Win10
- win10系統無法回到win7系統怎麼辦 win10怎麼滾回win7系統Win10Win7
- 免費OA辦公系統怎麼提高企業的辦公效率
- linux系統root密碼忘記了怎麼辦Linux密碼
- 遊戲伺服器win10系統卡住怎麼辦遊戲伺服器Win10
- 網投被黑提款時系統稽核不通過怎麼辦?
- Win8系統密碼忘記了怎麼辦密碼
- Windows10系統桌面只有回收站怎麼辦Windows
- win7系統電腦不能錄音怎麼辦Win7
- win10系統磁碟佔用100%怎麼辦Win10
- win10系統設定打不開怎麼辦Win10
- 隨身碟裝系統出現白屏故障怎麼辦?
- win8系統工作列變白色了怎麼辦
- win10系統執行速度慢怎麼辦?Win10