錯誤日誌關鍵信息
InnoDB: Error: trying to access page number 4294899072 in space 0
InnoDB: Assertion failure in thread ... fil0fil.c line 4409
InnoDB: corruption in the InnoDB tablespace
嘗試恢復步驟
innodb_force_recovery = 4 → 無法啟動
innodb_force_recovery = 6 → 唯讀模式啟動成功
mysqldump 導出數據
- 改回
innodb_force_recovery = 0 → 數據無法導入
- 最終:刪除數據目錄重建,從備份恢復
force_recovery 等級說明
| 等級 | 行為 | 風險 |
| 1-3 | 跳過部分檢查 | 低 |
| 4 | 不做插入緩衝合併 | 中 |
| 5 | 不檢查 Undo Log | 高 |
| 6 | 唯讀,不做 Redo Log 恢復 | 極高,數據可能不一致 |
教訓與預防
- ✅ 部署 UPS、優雅關閉腳本
- ✅ 定期
mysqldump / 物理備份 (xtrabackup)
- ✅ 監控磁碟空間、IO 延遲
- ✅ 測試恢復演練,確保備份可用