建立預防性維護機制,避免等到故障才檢查。核心三支柱:定期備份+啟用更新日誌、排程例行表檢查、啟動前檢查 (防崩潰損壞)。
#!/bin/sh
cd DATADIR
myisamchk --silent --fast */*.MYI
isamchk --silent */*.ISM
--silent:僅錯誤輸出,避免垃圾郵件--fast:跳過未修改表#!/bin/sh
datadir=DATADIR
find $datadir -name "*.MYI" -print | xargs myisamchk --silent --fast
find $datadir -name "*.ISM" -print | xargs isamchk --silent
check_tables,chmod +x./check_tables (理想無輸出)su mysql
crontab -l > /tmp/entries
echo "0 0 * * 0 /usr/local/mysql/bin/check_tables" >> /tmp/entries
crontab /tmp/entries
每週日 00:00 執行。有錯誤才寄信通知 (因 --silent)。
/etc/rc.local):啟動 MySQL 前呼叫 check_tables/etc/rc.d):建立 mysql.check 腳本處理 start/stop 參數,連結序號 S98 早於 mysql.server (S99)myisamchk --silent --fast