建立預防性維護排程,能自動偵測潛在問題並及時修正,是確保MySQL伺服器穩定運行的關鍵。核心措施包含三大支柱:定期備份、啟用更新日誌、排程表檢查。
利用cron作業定期執行myisamchk與isamchk檢查所有資料庫表。基本腳本結構如下:
#!/bin/sh cd DATADIR myisamchk --silent --fast */*.MYI isamchk --silent */*.ISM
--silent僅在發現錯誤時輸出,--fast跳過未修改的表(僅myisamchk支援)。若表數量龐大導致參數過多,可改用find搭配xargs逐個處理:
find . -name "*.MYI" -type f -print | xargs myisamchk --silent --fast
編輯mysqladm用戶的crontab:
% crontab -e 0 3 * * 0 /usr/users/mysqladm/bin/check_MySQL_tables
每週日凌晨3點自動執行,可依需求調整時間。
/etc/rc.local中啟動MySQL前呼叫檢查腳本。/etc/rc.d下的啟動腳本,於start參數時執行檢查,stop時不處理。chmod +x)並先手動測試驗證。配合mysqldump定期備份與更新日誌啟用,這套預防性維護機制能大幅降低資料損壞風險,減少緊急恢復的頻率與成本。