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

MySQL 資料表檢查與修復實戰:myisamchk 與 isamchk 完整指南

     編輯:MySQL 資料庫相關知識

資料庫表損壞常因斷電、硬體故障、非正常關機(kill -9、系統崩潰)導致,尤其在寫入未完成時發生。本文詳細說明使用 myisamchk(MyISAM 表)與 isamchk(ISAM 表)進行檢測、備份、修復、災難恢復的標準流程。

標準故障處理流程

  1. 檢查:執行檢查命令,通過則結束,否則進入修復。
  2. 備份:修復前務必複製表檔案(.MYD、.MYI 或 .ISD、.ISM),防修復失敗惡化。
  3. 修復:嘗試自動修復。
  4. 災難恢復:修復失敗時,從備份與更新日誌(Binary Log)還原。前提:已建立定期備份並啟用更新日誌。

前置準備

  • 建立常態化備份機制與更新日誌,參閱第 11 章 mysqldump 與日誌啟用。
  • 詳細閱讀本章,特別是「避免與 MySQL 服務器交互作用」一節:服務運行時操作表檔會導致不一致,需採取鎖表或停機策略。
  • 以運行 MySQL 的系統帳號執行操作,確保對表檔有讀寫權限。

工具調用語法與表類型識別

myisamchk [選項] 表名...
isamchk [選項] 表名...
  • 識別表類型:索引檔副檔名 .MYI = MyISAM,.ISM = ISAM。誤用工具僅報警告,不損壞資料。
  • 批次處理:可用萬用字元 *.MYI 或 *.ISM 處理整個目錄。
  • 路徑處理:工具不判斷表位置,需在表目錄下執行或指定完整路徑,便於複製檔案到他處操作。

完整選項清單見附錄 E,背景知識請參考 MySQL 參考手冊「維護 MySQL 安裝」章節。

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