首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 表故障檢測與修復標準流程:myisamchk 使用全指南

     編輯:MySQL 資料庫相關知識

MyISAM/ISAM 表故障檢測修復標準作業程序

面對表損壞,遵循「檢查 → 備份 → 修復 → 驗證」四步走,配合 myisamchk/isamchk 多層級檢查選項,最大程度保障數據安全。

一、通用修復流程

  1. 檢查:運行檢查命令,若通過則結束,否則進入修復。
  2. 備份:修復前**必須**拷貝 .MYD、.MYI、.frm 到安全位置。
  3. 修復:按輕重依序嘗試 --recover --quick → --recover → --safe-recover。
  4. 兜底:修復失敗則從備份或二進制日志恢復。

二、前置必要條件

  • 建立定期備份策略,啟用二進制日志(log-bin)。
  • Unix 系統下以 mysql 專用賬戶操作,避免文件所有權混亂。
  • 徹閱文檔後再操作,切忌盲目嘗試。

三、工具選擇與調用方式

表類型工具索引後綴數據後綴
MyISAMmyisamchk.MYI.MYD
ISAMisamchk.ISM.ISD

調用模式(支援通配符、路徑、多表):

myisamchk [options] tbl_name
myisamchk [options] /path/to/db/*.MYI
myisamchk [options] /path/to/datadir/*/*.MYI  # 所有庫所有表

工具不判斷表位置,需在表目錄下運行或指定完整路徑,方便將文件拷貝到他處操作。

四、三級檢查深度對比

級別選項特點適用場景
標準無 / -s / --silent檢測 99.99% 錯誤,速度快日常巡檢、大多數情況
中等-m / --medium-check比標準慢,比擴展快,僅發現 99.99% 錯誤很少使用,意義有限
擴展-e / --extend-check逐行逐鍵驗證,極慢,大表慎用疑難雜症、標準檢查無果但業務異常時

建議:日常用標準檢查;--extend-check 發現首個錯誤即停止,加 -v 可繼續報告最多 20 個錯誤。

五、實用輔助選項

  • -i / --information:輸出表統計信息(行數、索引長度等)。
  • -C / --check-only-changed:僅檢查上次檢查後被修改的表,適合定時任務。
  • -f / --force:發現錯誤自動執行修復(-r),慎用於生產環境。

六、判斷修復是否徹底

若 --extend-check 無錯誤報告,表結構完好。若業務仍異常,請排查:

  1. SQL 語句邏輯是否正確。
  2. 是否為 MySQL 服務器 Bug(升級版本或提交 Bug Report)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved