Oracle 無響應故障

來源:互聯網
上載者:User

1.現象

資料庫執行個體不能響應用戶端的發起的請求。

2.種類

-Oracle的進程在等待某個資源或事件

-Oracle Process Spins,所謂Spin,就是指Oracle進程中的代碼在執行某個過程時,陷入迴圈。在v$session視圖中,往往可以看到Hang住的會話

 一直處於"ACTIVE"狀態.

3.從故障範圍來看,無響應故障可以分為以下幾種情況:

-單個或部分會話Hang住

-單個資料執行個體Hang住

-OPS或RAC中的多個執行個體或所有執行個體都Hang住

4.無響應故障成因分析

-資料庫主機負載過高,嚴重的超過主機承受能力

--應用設計不發,資料效能低下,活動會話數大量增加

--主機記憶體嚴重不足,引起大量的換頁

-日常維護不當

--歸檔日誌的儲存空間滿

--對DML操作比較多的大表進行move,增加外鍵約束

--不正確的資源計劃配置

-Oracle資料庫的Bug

-其他方面的一些原因

--如RAC資料庫中,如果一個節點退出或加入RAC的過程中,當進行Resource Reconfiguration時,會使系統凍結一段時間

5.無故障處理流程

-確認系統的影響範圍

-同時詢問系統維護和開發人員,受影響的系統在出現故障前是否有過變動

  包括主機、硬體、作業系統、網路、資料庫及應用

-為了避免由於網路、資料庫監聽或用戶端因素影響分析,登入到主機上進行操作

-如果不能登入主機,嘗試關閉業務系統,重啟主機,監控主機資源

-登入主機後,先用top,topas等命令查詢系統CPU使用,實體記憶體,虛擬內在的使用,IO使用等情況

-使用SQLPLUS串連資料,使用gdb,dbx等debugger工具對資料庫進行system state dump;使用strace truss等工具檢查異常進程的系統調用

使用用pstack,procstack等工具察看異常進程的call stack等

6.使用sqlplus串連上資料後,進行hanganalyze,system state dump等操作;檢查等待事件,異常會話等正在執行的SQL等

7.找到故障原因,盡量收集資料

8.如急須恢複,可通過kill會話,重啟動資料庫執行個體等方式,先恢複應用

9.根據最終診斷結果,對資料庫升級打補丁或者修改應用等方式從根本上解決問題。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.