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

Linux Shell 自動備份 MySQL 資料庫腳本實作

     編輯:MySQL 資料庫相關知識

自動化 MySQL 備份 Shell 腳本

支援指定備份表清單、gzip 壓縮、按日期分目錄存放。注意:僅適用於資料一致性要求不高的環境(無鎖表、非事務一致性)。

腳本完整代碼

#!/bin/bash
mysql_pwd="password"
mysql_dump="/usr/local/mysql/bin/mysqldump"
cur_year=$(date +"%Y")
cur_month=$(date +"%m")
cur_day=$(date +"%d")
dump_path="/usr/backup/mysql/$cur_year-$cur_month/$cur_day"

# 需備份的表清單
arr_tables=(
    "table_1"
    "table_2"
    "table_3"
)

# 建立日期目錄
[ ! -d "$dump_path" ] && mkdir -p "$dump_path"

# 逐表備份並壓縮
for cur_table in "${arr_tables[@]}"; do
    $mysql_dump -uroot -p$mysql_pwd --opt mydb "$cur_table" | gzip > "$dump_path/$cur_table.sql.gz"
done

關鍵參數說明

  • --opt:啟用快速導出優化組合(含鎖表、延遲插入等)
  • gzip:管道式壓縮,不產生中間檔
  • 日期目錄結構:/usr/backup/mysql/YYYY-MM/DD/

進階建議

  • 生產環境建議改用 --single-transaction(InnoDB)確保一致性
  • 搭配 crontab 定時執行,如每日凌淩 2 點:0 2 * * * /path/backup.sh
  • 加入備份保留天數清理邏輯,避免磁碟爆滿
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved