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

CentOS 7 實現 MySQL 定時自動備份:腳本編寫與 crontab 部署全流程

     編輯:MySQL 資料庫相關知識

一、 準備工作

# 創建備份目錄
mkdir -p /home/mysql_data_bak
# 創建腳本文件
touch /root/autobackupmysql.sh
chmod +x /root/autobackupmysql.sh

二、 編寫備份腳本

vi /root/autobackupmysql.sh

腳本內容:

#!/bin/bash
# 文件名含日期:20240115.sql
FILENAME=$(date +%Y%m%d)
# 執行備份(根據實際情況調整用戶、密碼、數據庫、端口)
/usr/bin/mysqldump -u root -p'your_password' --single-transaction --routines --triggers boss > /home/mysql_data_bak/${FILENAME}.sql

# 可選:壓縮節省空間
# gzip /home/mysql_data_bak/${FILENAME}.sql

# 可選:刪除 30 天前備份
# find /home/mysql_data_bak -name "*.sql" -mtime +30 -delete

關鍵參數說明:

  • --single-transaction:InnoDB 熱備,不鎖表,保證一致性
  • --routines --triggers:包含存儲過程/觸發器
  • 密碼含特殊字符時建議用 --defaults-extra-file 指定配置文件,避免明文泄露

三、 安裝並啟用 cron 服務

# 檢查安裝
rpm -q cronie || yum -y install cronie
# 啟動並設開機自啟
systemctl start crond
systemctl enable crond

四、 配置定時任務

crontab -e

添加行(每天凌晨 3 點執行):

0 3 * * * /root/autobackupmysql.sh >> /var/log/mysql_auto_backup.log 2>&1

時間格式:分 時 日 月 周;* 表示任意。

五、 驗證與維護

  • 手動測試:/root/autobackupmysql.sh → 檢查目標目錄生成 .sql 文件且大小合理
  • 查看日誌:tail -f /var/log/mysql_auto_backup.log
  • 定期演練恢復:建立測試庫,mysql -u root -p test_db < backup.sql 驗證備份可用性
  • 異地同步:配合 rsync 或雲存儲 API 將備份推送至遠端

六、 進階優化建議

需求方案
大數據庫備份過慢使用 mydumper 多線程導出或 xtrabackup 物理熱備
備份文件過大管道直連 gzip 或 zstd 壓縮
多實例備份腳本參數化實例端口/數據庫,循環調用
備份狀態監控腳本返回碼 + 郵件/企業微信告警

七、 總結

通過 mysqldump + crontab 實現 MySQL 定時自動備份是運維入門必備技能。關鍵點:腳本參數正確、--single-transaction 保證一致性、日誌記錄便於排查、定期驗證恢復。生產環境建議引入壓縮、異地存儲與監控告警,構建完整備份閉環。

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