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

Linux 下 MySQL 定時備份自動化:mysqldump + gzip + crontab 完整實施指南

     編輯:MySQL 資料庫相關知識

實施步驟

1. 創建備份目錄

mkdir -p /www/backup

2. 編寫備份腳本 /www/autobackup

#!/bin/bash
FILENAME=$(date +%Y%m%d)
/usr/local/mysql/bin/mysqldump --opt 數據庫名 -u用戶 -p密碼 | gzip > /www/backup/前綴_${FILENAME}.gz

參數說明:

  • --opt:啟用快速導出優化(含 --add-drop-table, --extended-insert 等)。
  • gzip:管道壓縮,節省磁盤空間。
  • 文件名含日期,自動區分每日備份。

3. 賦予執行權限

chmod +x /www/autobackup

4. 配置 crontab 定時任務

通用法(編輯 /etc/crontab):

01 5 * * * root /www/autobackup
# 每天 05:01 執行,可修改時間

RedHat/CentOS 目錄法:

cp /www/autobackup /etc/cron.daily/  # 每天執行
# 或 /etc/cron.weekly/ (每周)、/etc/cron.monthly/ (每月)

5. 重啟 cron 服務

/etc/rc.d/init.d/crond restart
# 或 systemctl restart crond

進階增強建議

  • 多庫備份:腳本循環數組執行多個 mysqldump。
  • 遠程傳輸:備份後 scp/rsync 至異地存儲。
  • 保留策略:find /www/backup -mtime +30 -delete 刪除 30 天前舊備份。
  • 驗證備份:定期解壓導入測試環境校驗完整性。
  • 錯誤通知:腳本捕獲非 0 退出碼發郵件/釘釘告警。
  • GTID/二進制日誌備份:配合 --master-data=2 記錄 Binlog 位置,支持時間點恢復(PITR)。

注意事項

  • 密碼明文風險:建議使用 --defaults-extra-file 指向受保護的 .my.cnf。
  • 大數據庫 mysqldump 耗時長、鎖表久,考慮 --single-transaction (InnoDB) 或物理備份工具 xtrabackup。
  • 確保備份目錄磁盤空間充足,監控磁盤使用率。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved