【Oracle】資料庫hang 診斷
一 什麼是資料庫hang
';
或者使用:
oradebug setmypid
oradebug ulimit
oradebug dump processstate
當診斷資料庫掛起時,可以使用DUMP命令轉儲整個系統狀態:
alter sessions set events 'immediate trace name systemstate level';
或:
oradebug setmypid
oradebug ulimit
oradebug dump systemstate
如果為了獲取全面一點的資訊,可以使用Level 10。
SQL> oradebug setmypid
SQL> oradebug unlimit
SQL> oradebug dump systemstate 10
另外如果系統掛起,無法用SQL*Plus連線,從Oracle 10g開始,可以使用sqlplus -prelim選項強制登入,然後即可進行系統狀態資訊轉儲:
sqlplus -prelim '/ as sysdba'
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
1 使用者不能登入資料庫
2 資料庫不能正常工作
3 select 1 from dual 不出結果
4 不能正常完成建表操作
二 資料庫被鎖住
1 一個或多個會話停止工作
三 如果得知資料庫hang 或者被鎖
1 測試
2 使用者抱怨
3 systemstate 或者hanganalze 操作檢視被阻塞的會話
4 一個查詢hang 住不動
5 會話耗費了大量的cpu
6 ora-60 錯誤出現
四 上述現象可能會在以下操作之後:
1 schema 變動
2 資料庫引數變動
3 應用程式的改動
4 資料庫升級
五 理清 issue 發生的狀況,你必須瞭解如下
1 受影響的使用者
2 導致問題的事件的發生的順序
3 問題是從哪裡/如何被發現的
4 問題的表現
5 什麼正在工作
6 最希望的或者最能夠接受的結果是什麼
7 你做了什麼操作來解決這個問題
六 驗證工作
必須對資料庫是否hang 或者lock 進行驗證 否則會導致採取錯誤的動作。也有可能是os 的效能問題導致資料庫表現為hang 住的!!
select 1 from dual;
select 1 from dual;
七 收集資料
1 使用 LTOM 收集資料
2 使用 OSW 收集系統效能資料
3 使用 EM
八 使用hanganalyze 和systemstate 收集資料
systemstate的用法http://space.itpub.net/464838/viewspace-664380
DUMP程式狀態可以使用:
alter sessions set events 'immediate trace name processstate level 或者使用:
oradebug setmypid
oradebug ulimit
oradebug dump processstate
當診斷資料庫掛起時,可以使用DUMP命令轉儲整個系統狀態:
alter sessions set events 'immediate trace name systemstate level
或:
oradebug setmypid
oradebug ulimit
oradebug dump systemstate
如果為了獲取全面一點的資訊,可以使用Level 10。
SQL> oradebug setmypid
SQL> oradebug unlimit
SQL> oradebug dump systemstate 10
另外如果系統掛起,無法用SQL*Plus連線,從Oracle 10g開始,可以使用sqlplus -prelim選項強制登入,然後即可進行系統狀態資訊轉儲:
sqlplus -prelim '/ as sysdba'
oradebug setmypid
oradebug unlimit;
oradebug dump systemstate 10
====================================
--for 單例項
SQL>ORADEBUG hanganalyze
--for RAC 例項
SQL>ORADEBUG setmypid
SQL>ORADEBUG setinst all
SQL>ORADEBUG -g def hanganalyze
SQL>ORADEBUG hanganalyze
--for RAC 例項
SQL>ORADEBUG setmypid
SQL>ORADEBUG setinst all
SQL>ORADEBUG -g def hanganalyze
注意:如果Level過大的話會產生大量的跟蹤檔案並影響系統的I/O效能,Oracle建議不要採用3級以上的跟蹤。
以sysdba 登入
oradebug setmypid
oradebug unlimit
oradebug -g all hanganalyze 3
oradebug -g all dump systemstate 266
--等待2min
oradebug -g all hanganalyze 3
oradebug -g all dump systemstate 266
預設蒐集資料的步驟如下:
1 hanhanalyze level 3
2 systemstate level 266
3 wait 60 sec
4 hanhanalyze level 3
5 systemstate level 266
對於單例項 trace file 檔案在 本地的user_dump_desttination
對於rac 環境 trace file 檔案在每個節點的 backgroup_dump_destination
九 獲取v$效能資料
SPOOL v_views.log;
/*set linesize 130
col "Parameter" form. a50
col "Session Value" form. a30
col "Instance Value" form. a30
*/
select a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx
and a.indx = c.indx
order by 1 ;
SELECT class , value, name FROM v$sysstat;
SELECT sid , id1, id2, type, lmode, request FROM v$lock;
SELECT l.latch#,
n.name,
h.pid,
l.gets,
l.misses,
l.immediate_gets,
l.immediate_misses,
l.sleeps
FROM v$latchname n, v$latchholder h, v$latch l
WHERE l.latch# = n.latch#
AND l.addr = h.laddr(+);
SELECT * FROM v$session_wait ORDER BY sid ;
/* repeat last query 3 times - we want to see who's repeatedly waiting*/
SPOOL OFF;
獲取了資料之後 就是分析了!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10271187/viewspace-1479371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 透過v$wait_chains檢視診斷資料庫hang和ContentionAI資料庫
- Oracle 19.3資料庫impdp匯入view時hang住Oracle資料庫View
- ORACLE診斷案例Oracle
- Oracle 28.6資料庫impdp匯入view時hang@11Oracle資料庫View
- ODX 診斷資料庫轉換工具 — DDC資料庫
- 資料庫異常智慧分析與診斷資料庫
- Part II 診斷和優化資料庫效能優化資料庫
- 大語言模型與資料庫故障診斷模型資料庫
- file-max設定過小導致oracle資料庫hang住Oracle資料庫
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- Oracle診斷事件列表(轉)Oracle事件
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- oracle之 redo過高診斷Oracle
- 9 Oracle Data Guard 故障診斷Oracle
- Oracle診斷案例-Sql_traceOracleSQL
- 資料庫簡化運維,智慧診斷助手幫你搞定!資料庫運維
- Oracle 12.1.0.2 impdp匯入慢診斷Oracle
- oracle RAC 診斷叢集狀態命令Oracle
- 一次ORACLE IO效能診斷案例Oracle
- 一次Oracle診斷案例-Spfile案例Oracle
- 伺服器斷電Oracle資料庫修復資料過程伺服器Oracle資料庫
- 【巨杉資料庫SequoiaDB】巨杉Tech | 四步走,快速診斷資料庫叢集狀態資料庫
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 從監控到診斷:資料的力量
- Oracle EBS基礎學習:Oracle EBS啟用診斷功能Oracle
- Oracle診斷案例-Job任務停止執行Oracle
- 一次Oracle診斷案例-SGA與SwapOracle
- 【北亞資料恢復】異常斷電導致Oracle資料庫報錯的oracle資料恢復資料恢復Oracle資料庫
- 19c資料庫impdp匯入view時hang住資料庫View
- 【恩墨學院】基於裸資料的異地資料庫效能診斷與最佳化資料庫
- 【YashanDB知識庫】yac修改引數後關閉資料庫hang住資料庫
- 當資料庫遇上"自動駕駛",阿里雲 DAS 在自治診斷的突破資料庫自動駕駛阿里
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- 9. Oracle常用分析診斷工具——9.3.ADDMOracle
- 9. Oracle常用分析診斷工具——9.2. ASHOracle
- 9. Oracle常用分析診斷工具——9.1. AWROracle
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- Oracle資料庫配置Oracle資料庫