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

MySQL 生產環境冷備份實戰:LVM 邏輯卷管理與快照技術確保資料安全

     編輯:MySQL 資料庫相關知識

為何需要 LVM 架構下的冷備份?

傳統冷備份將備份檔存放於本機磁碟,一旦磁碟損壞,主備同掛。生產環境應採用 LVM (Logical Volume Manager) 將 MySQL 資料目錄掛載於獨立邏輯卷,並搭配 LVM 快照 實現近乎零停機的備份窗口。

架構規劃與部署流程

步驟 1-7:建立 LVM 邏輯卷並遷移資料目錄

# 1. 新增兩顆實體磁碟 /dev/sdb, /dev/sdc
# 2. 分區建立實體卷
fdisk /dev/sdb; fdisk /dev/sdc
pvcreate /dev/sdb1 /dev/sdc1

# 3. 建立卷組與邏輯卷
vgcreate data /dev/sdb1 /dev/sdc1
lvcreate -L 2G -n mydata data

# 4. 格式化並掛載
mkfs.ext4 /dev/data/mydata
mount /dev/data/mydata /usr/local/mysql/data/

# 5. 寫入 /etc/fstab 持久化
echo "/dev/mapper/data-mydata /usr/local/mysql/data ext4 defaults 1 2" >> /etc/fstab

# 6. 停止 MySQL、同步資料、修正權限、啟動驗證
/etc/init.d/mysqld stop
tar -cvPzf /databackup/mysql01.tar.gz /usr/local/mysql/data/
# ... 移動資料至新掛載點 ...
chown -R mysql:mysql /usr/local/mysql/data/
/etc/init.d/mysqld start

步驟 8-14:建立 LVM 快照進行熱備份(核心優勢)

# 1. 建立 100MB 快照卷(僅儲存變更區塊,空間極省)
lvcreate -L 100M -s -n smydata /dev/data/mydata

# 2. 掛載快照卷
mount /dev/data/smydata /mnt

# 3. 從快照卷備份(完全不影響線上服務)
tar -cvzf /databackup/mysql_snap_$(date +%F).tar.gz /mnt

# 4. 卸載並移除快照
umount /mnt
lvremove /dev/data/smydata

LVM 冷備份架構示意圖

快照隔離性驗證實驗

# 在主資料目錄建立新檔
touch /usr/local/mysql/data/aa01.txt

# 檢查快照掛載點 /mnt —— 檔案不存在,證明快照為建立時間點的靜態視圖
ls /mnt/aa01.txt  # No such file or directory

災難恢複演練

  1. 停止 MySQL、刪除資料目錄所有檔案
  2. 從快照備份檔解壓還原:tar -xvf mysql_snap_xxx.tar.gz -C /
  3. 調整檔案位置、修正權限、啟動 MySQL
  4. 驗證資料完整性:SELECT * FROM larrydb.class;

關鍵優勢總結

維度傳統冷備份LVM 快照冷備份
備份窗口需停機整個備份期間僅需秒級鎖定建立快照
資料一致性靜態檔案一致崩潰一致性
磁碟故障保護無(同一磁碟)有(獨立物理卷)
操作複雜度低中(需 LVM 知識)

最佳實務: 生產環境建議將 datadir、binlog、slow_log 分別掛載於不同 LVM 卷,並制定快照保留策略(如保留 7 天每日快照 + 月底快照),配合異地同步實現完整災備架構。

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