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

MySQL Enterprise Backup (MEB) 完整還原實戰:從備份到恢復的標準化流程

     編輯:MySQL 資料庫相關知識

前言

MySQL Enterprise Backup (MEB) 是 Oracle 官方提供的熱備份工具,支援 InnoDB 熱備份、壓縮、增量、加密。本文記錄一次完整的「全量備份 → 停庫 → 清理數據目錄 → apply-log → copy-back → 權限修正 → 啟動驗證」的標準化恢復流程,供生產環境參考。

一、環境資訊

  • MySQL 版本:5.5.25-log
  • 資料目錄:/data/mysql5.5/
  • 備份目錄:/backup/5.5/normal(非壓縮)、/backup/5.5/compress(壓縮)
  • MEB 版本:3.8.2

二、全量備份(非壓縮)

./mysqlbackup \
  --defaults-file=/service/mysql5.5/my.cnf \
  --socket=/data/mysql5.5/mysql.sock \
  --user=root --password \
  --backup-dir=/backup/5.5/normal \
  backup

關鍵輸出:mysqlbackup completed OK!、Start LSN: 3406087168、End LSN: 3406090810、Binlog 位置 ZWC-TEST.000024:16178。

三、壓縮備份(可選)

./mysqlbackup \
  --defaults-file=/service/mysql5.5/my.cnf \
  --socket=/data/mysql5.5/mysql.sock \
  --user=root --password \
  --backup-dir=/backup/5.5/compress \
  --compress \
  backup

壓縮率:496 MB → 200 MB(60.51%),節省儲存空間與網路傳輸時間。

四、還原前置作業

  1. 停止 MySQL:mysqladmin shutdown -uroot -p
  2. 清空數據目錄(謹慎操作,確認備份可用):
    rm -rf /data/mysql5.5/*(保留目錄本身)

五、Apply-log:將 Redo Log 重放至備份檔案

./mysqlbackup \
  --defaults-file=/service/mysql5.5/my.cnf \
  --backup-dir=/backup/5.5/normal \
  apply-log

此步驟使備份檔案達到「一致性狀態」,可直接作為數據目錄啟動。輸出 Full backup prepared for recovery successfully.

六、Copy-back:將備份檔案複製回目標數據目錄

./mysqlbackup \
  --defaults-file=/service/mysql5.5/my.cnf \
  --backup-dir=/backup/5.5/normal \
  copy-back

會覆蓋 /data/mysql5.5/ 下的所有檔案,包含 ibdata1、*.ibd、ib_logfile*、各資料庫目錄。

七、權限修正與啟動

chown -R mysql.mysql /data/mysql5.5/
/service/mysql5.5/bin/mysqld_safe \
  --defaults-file=/service/mysql5.5/my.cnf \
  --basedir=/service/mysql5.5 \
  --datadir=/data/mysql5.5 \
  --user=mysql &

八、驗證恢復結果

mysql -uroot -p -D zwc -e "SELECT COUNT(*), NOW() FROM t1;"
-- 10000000 rows, 0.04 sec
mysql -uroot -p -D zwc -e "SELECT COUNT(*), NOW() FROM t2;"
-- 10000000 rows, 2.91 sec

資料筆數與備份前一致,查詢正常,恢復成功。

九、關鍵注意事項

  1. 備份目錄權限:MEB 讀寫備份目錄需 OS 層面權限,建議專用備份用戶。
  2. apply-log 不可跳過:直接 copy-back 未 apply 的備份會導致 InnoDB crash recovery 失敗或資料不一致。
  3. 壓縮備份還原:需先 --uncompress 解壓再 apply-log,或使用 copy-back-and-apply-log(MEB 4.0+ 支援)。
  4. Binlog 位置記錄:還原後若需搭建從庫,請記錄備份完成時的 Binlog 位置(Start LSN / End LSN)。
  5. 版本相容性:MEB 版本需與 MySQL 服務器版本匹配,跨大版本還原請先升級備份檔案(mysql_upgrade)。

十、總結

MEB 還原核心三步曲:apply-log → copy-back → 權限修正啟動。生產環境建議每季演練一次全量恢復,驗證備份可用性與 RTO/RPO 指標。

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