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

Linux 異構網路下 MySQL 備份策略:本地 mysqldump、DVD 刻錄離線歸檔與自動化腳本設計

     編輯:MySQL 資料庫相關知識

備份架構分層

層級頻率介質保留RTO/RPO
本地熱備每日/每小時本地磁碟/NAS7-30 天分鐘/秒
離線冷備每週/每月DVD-R/DVD+RW年級小時/天
異地同步即時/每日異地 Server/雲存儲依合規秒/分鐘

第一層:本地 mysqldump 自動化

#!/bin/bash
# /usr/local/bin/mysql_daily_backup.sh
DB_USER="backup_user"
DB_PASS="xxx"
BAK_DIR="/backup/mysql/daily"
DATE=$(date +%F_%H%M)
mkdir -p $BAK_DIR

# 全庫壓縮備份 (含 routines/triggers/events)
mysqldump --single-transaction --master-data=2 \
  --routines --triggers --events --hex-blob \
  -u $DB_USER -p$DB_PASS --all-databases \
  | gzip > $BAK_DIR/full_$DATE.sql.gz

# 保留 30 天
find $BAK_DIR -name "full_*.sql.gz" -mtime +30 -delete

# 記錄日誌
echo "$(date) Backup completed: full_$DATE.sql.gz" >> /var/log/mysql_backup.log

加入 cron:0 2 * * * /usr/local/bin/mysql_daily_backup.sh

第二層:DVD 刻錄離線歸檔 (Linux 異構環境)

硬體準備

  • IDE DVD 燒錄機 → 核心參數 hdc=ide-scsi (Grub kernel 行尾加入)。
  • SATA/USB 燒錄機即插即用 (需 sg 模組)。

軟體套件

  • dvd+rw-tools (growisofs, dvd+rw-format)
  • cdrtools (mkisofs, cdrecord, readcd)
  • cdrdao (DAO 模式燒錄)
  • dvdrecord (命令列 DVD 燒錄)

燒錄腳本範例

#!/bin/bash
# /usr/local/bin/burn_weekly_dvd.sh
ISO_DIR="/backup/mysql/weekly_iso"
DVD_DEV="/dev/dvd"
DATE=$(date +%Y%m%d)

# 1. 建立 ISO (每週完整備份)
mkisofs -V "MYSQL_WEEKLY_$DATE" -o $ISO_DIR/weekly_$DATE.iso /backup/mysql/daily/

# 2. 燒錄 (DVD+RW 可覆寫)
growisofs -Z $DVD_DEV=$ISO_DIR/weekly_$DATE.iso -speed=4

# 3. 驗證
readcd -c2 dev=$DVD_DEV f=$ISO_DIR/verify_$DATE.iso
diff $ISO_DIR/weekly_$DATE.iso $ISO_DIR/verify_$DATE.iso && echo "Verify OK"

Windows 客戶端取回備份 (異構網路)

  • Samba 共享 /backup/mysql → Windows 掛載磁碟機。
  • 或用 WinSCP/PSCP 透過 SSH 下載 .sql.gz。
  • DVD 光碟於 Windows 直接讀取/解壓 (7-Zip 支援 .gz/.sql)。

驗證與演練

  1. 每月隨機抽取一份本地備份,在測試環境 source 還原。
  2. 每季抽取一片 DVD,驗證可讀性與資料完整性。
  3. 記錄 RTO/RPO 實測值,納入營運手冊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved