某企業核心資料庫在節假日期間發生嚴重故障,癥狀疊加:
kernel: sda5: attempt to access beyond end of device — 磁碟壞軌/控制器異常,I/O 越界。DBVERIFY 掃描回報 Page is influx - most likely media corrupt、Fractured block、校驗和失敗,SYSTEM 表空間首當其衝。ORA-00600 [kccpb_sanity_check_2] 掛載失敗,備份控制檔同樣損壞(Corrupt block found during reading backup piece)。| 階段 | 動作 | 關鍵錯誤/工具 |
|---|---|---|
| 1. 硬體隔離 | 更換故障磁碟,以 `dd`/`ddrescue` 盡量鏡像殘存資料 | 硬體層面止損 |
| 2. 還原資料檔 | 從備份集還原所有資料檔至新磁碟 | RMAN / 使用者管理備份 |
| 3. 重建控制檔 | `CREATE CONTROLFILE ... RESETLOGS` 手工重建 | 需精確列出所有資料檔/重做日誌路徑 |
| 4. 強制開啟 | `ALTER DATABASE OPEN RESETLOGS` | ORA-00600 [4000] → Bootstrap 失敗 |
| 5. BBED 修復 | 用 Block Browser/Editor 修正 SYSTEM 表空間核心資料字典區塊 | 極高風險,需專家指導 |
| 6. 解決 SCN 推進 | ORA-00600 [2662] SCN 不一致 | 調整 `_minimum_giga_scn` 或事件 10015 推進 SCN |
| 7. UNDO 重建 | ORA-00600 [4097] UNDO 區塊壞塊 | 建立新 UNDO 表空間、切換、丟棄舊表空間 |
| 8. 雜項清理 | 臨時段、排序段、統計資訊重建 | 開啟成功,業務驗證通過 |
此案例展示了從硬體故障到邏輯層層剝洋蔥的完整恢復鏈條。真正的高可用不僅是架構設計,更是「備份可用、流程熟練、工具精通」三位一體的運維鐵律。