首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle Redo Log 日誌組故障分析:CKPT 未完成導致資料庫停頓

     編輯:Oracle 資料庫基礎

環境

平台:SunOS 5.8,資料庫:8.1.5.0.0

故障現象

資料庫回應緩慢,應用請求無法返回,業務操作停頓。

1. 登入檢查:所有 Redo Log 組除 CURRENT 外均為 ACTIVE

SQL> SELECT * FROM V$LOG;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
1 1 520403 31457280 1 NO ACTIVE ...
2 1 520404 31457280 1 NO ACTIVE ...
3 1 520405 31457280 1 NO ACTIVE ...
4 1 520406 31457280 1 NO CURRENT ...
5 1 520398 31457280 1 NO ACTIVE ...
6 1 520399 31457280 1 NO ACTIVE ...
7 1 520400 104857600 1 NO ACTIVE ...
8 1 520401 104857600 1 NO ACTIVE ...
9 1 520402 104857600 1 NO ACTIVE ...

日誌切換觸發檢查點,CKPT 通知 DBWR 寫髒資料。若 DBWR 寫入過慢,檢查點未完成而日誌組用盡,資料庫停頓,日誌記錄 CHECKPOINT NOT COMPLETE,V$SESSION_WAIT 顯示大量 LOG FILE SWITCH (CHECKPOINT INCOMPLETE) 等待。

2. 檢查 DBWR 進程

PS -EF | GREP ORA_
-- DBWR PID 2266
TOP
-- PID 2266 CPU 僅 0.18%,並不忙碌

DBWR 不忙但檢查點無法完成 → 瓶頸極可能在 I/O。

3. 檢查 I/O 狀況

IOSTAT -XN 3
-- 主要資料卷 c1t1d0 %b 持續 99~100,寫入速度僅 ~500KB/s
-- 正常 T3 陣列寫入可達 10MB/s,隨機寫入 1-2MB/s

確認為硬碟損壞,RAID5 組中一顆硬碟故障。更換後系統恢復正常。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved