萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL LVM 快照熱備份方案:實現大數據庫不停機備份與秒級恢復

方案優勢

  • 近熱備:僅需短暫全局讀鎖(秒級),業務無感知
  • 全引擎支持:MyISAM、InnoDB、BDB、TokuDB 等所有本地存儲引擎
  • 極速備份:文件級複製,速度受限於存儲帶寬
  • 極低開銷:無 SQL 解析、無網絡協議開銷
  • 多介質存儲:磁帶、FTP、NFS、S3、專用備份軟件
  • 秒級恢復:恢復時間 = 數據拷貝時間
  • 零成本:利用 LVM 內核模塊,無商業軟件授權

前置準備:LVM 邏輯卷構建

# 1. 創建物理卷/卷組(假設 /dev/sdb 為新磁盤)
pvcreate /dev/sdb
vgcreate mysqlvg1 /dev/sdb

# 2. 創建邏輯卷(3G)
lvcreate -L 3G -n mysqllv mysqlvg1

# 3. 格式化
mkfs.ext4 /dev/mysqlvg1/mysqllv

# 4. 遷移現有數據目錄
systemctl stop mysqld
mount /dev/mysqlvg1/mysqllv /mnt
cd /var/lib/mysql
tar cf - . | tar xf - -C /mnt
umount /mnt

# 5. 重新掛載至數據目錄
rm -rf /var/lib/mysql/*
mount /dev/mysqlvg1/mysqllv /var/lib/mysql

# 6. 寫入 /etc/fstab 永久掛載
blkid /dev/mysqlvg1/mysqllv
# UUID=xxxx  /var/lib/mysql  ext4  defaults  0 0

# 7. 關閉 SELinux
setenforce 0
# 永久:/etc/selinux/config -> SELINUX=disabled

# 8. 啟動驗證
systemctl start mysqld

LVM 快照備份標準流程

1. 主庫:全局讀鎖 + 記錄 Binlog 位置

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS\G;
# 記錄 File、Position

2. 創建快照(瞬間完成)

lvcreate -L 1G -s -n mysql-snap /dev/mysqlvg1/mysqllv
# -s: snapshot, -n: 名稱, -L: 大小(建議 10-20% 源卷,預留寫入空間)

3. 釋放鎖(業務恢復寫入)

mysql> UNLOCK TABLES;

4. 掛載快照備份

mount /dev/mysqlvg1/mysql-snap /backup/snap
tar czf /backup/mysql-$(date +%F).tar.gz -C /backup/snap .
umount /backup/snap

5. 刪除快照(釋放空間)

lvremove -f /dev/mysqlvg1/mysql-snap

從庫同步搭建(基於快照)

  1. 將備份文件傳輸到從庫機器
  2. 解壓至數據目錄,修正權限 chown -R mysql:mysql
  3. 啟動從庫 MySQL
  4. 配置復制起點:
    CHANGE MASTER TO
        MASTER_HOST='192.168.100.109',
        MASTER_USER='repl',
        MASTER_PASSWORD='pass',
        MASTER_LOG_FILE='host-bin.000006',
        MASTER_LOG_POS=198;
    START SLAVE;
    

關鍵參數調優

  • 快照大小: 預估備份期間寫入量 × 1.5,防止快照溢出導致失效
  • 備份時間窗: 低峰期(如 02:00-04:00)
  • 並行壓縮: tar -I pigz 多核加速
  • 網絡傳輸: rsync -avz --bwlimit=100000 限速不影響業務

避坑指南

  1. **XFS 文件系統需 xfs_freeze 配合**,LVM 快照前凍結文件系統
  2. **InnoDB 需開啟 innodb_flush_log_at_trx_commit=1** 確保崩潰一致性
  3. **快照不可作為長期備份存儲**,必須導出到獨立介質
  4. **監控快照使用率**:lvs -o +data_percent,超 80% 告警
copyright © 萬盛學電腦網 all rights reserved