V$LOG 顯示除 Current 外,所有 8 個 Log Group 均為 ACTIVE 狀態。Log Switch 觸發 Checkpoint,CKPT 通知 DBWR 將髒緩衝寫入磁碟。若 DBWR 寫入緩慢,Checkpoint 無法完成,Oracle 便無法覆寫該 Redo Log,導致後續 Log Switch 阻塞,整個資料庫停擺。
Alert Log 典型錯誤:
Thread 1 cannot allocate new log, sequence 5871
Checkpoint not complete
Current log# 2 seq# 5870 ...
V$SESSION_WAIT 大量 Session 等待 log file switch (checkpoint incomplete)。
ps -ef | grep ora_dbw
# 找到 DBWR PID (例: 2266)
top -p 2266
# CPU 僅 0.18%,處於 sleep 狀態 → DBWR 不忙
結論:瓶頸不在 CPU,極大機率在 **I/O 子系統**。
iostat -xn 3
關鍵輸出解讀:
| 裝置 | %b (忙碌%) | kw/s (寫入 KB/s) | 判斷 |
|---|---|---|---|
| c1t1d0 (資料卷) | 99-100% | ~500 KB/s | 極度異常,理論寫入應達 1-10 MB/s |
| c0t10d0, c0t11d0 | 低 | 低 | 正常 |
%b 接近 100% 且吞吐極低,特徵為 **RAID 5 陣列單顆硬碟損壞,導致寫入懸罰 (write penalty) 暴增**。
iostat -x 的 %b (裝置忙碌率) 與 kw/s (寫入吞吐) 是判斷磁碟健康的黃金指標。Bonnie++ 磁碟效能基準測試方法:www.eygle.com/unix/Use.Bonnie.To.Test.IO.speed.htm