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

MySQL 資料庫日常維護規範建立:自動化檢查腳本、cron 排程與啟動檢查完整方案

     編輯:MySQL 資料庫相關知識

建立預防性維護機制,避免等到故障才檢查。核心三支柱:定期備份+啟用更新日誌、排程例行表檢查、啟動前檢查 (防崩潰損壞)。

自動化檢查腳本設計

簡易版 (表數較少)

#!/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

部署與執行

  1. 存為 check_tables,chmod +x
  2. 切換 mysql 使用者手動測試:./check_tables (理想無輸出)
  3. 注意:無外部鎖定支援時,服務運行中檢查可能誤報;建議離峰或啟用外部鎖定
  4. cron 定期排程 (Unix/Linux)

    su mysql
    crontab -l > /tmp/entries
    echo "0 0 * * 0 /usr/local/mysql/bin/check_tables" >> /tmp/entries
    crontab /tmp/entries
    

    每週日 00:00 執行。有錯誤才寄信通知 (因 --silent)。

    系統啟動檢查 (BSD / System V / Linux)

    • BSD 風格 (/etc/rc.local):啟動 MySQL 前呼叫 check_tables
    • System V (/etc/rc.d):建立 mysql.check 腳本處理 start/stop 參數,連結序號 S98 早於 mysql.server (S99)
    • Linux 兩種皆可,建議用 BSD 風格簡便

    最佳實踐總結

    1. 優先確保備份與二進位日誌正常
    2. 排程 myisamchk --silent --fast
    3. 啟動前檢查防崩潰損壞
    4. 離峰執行或啟用外部鎖定避免誤報
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved