MySQL Enterprise Backup (MEB) 是 Oracle 官方提供的熱備份工具,支援 InnoDB 熱備份、壓縮、增量、加密。本文記錄一次完整的「全量備份 → 停庫 → 清理數據目錄 → apply-log → copy-back → 權限修正 → 啟動驗證」的標準化恢復流程,供生產環境參考。
/data/mysql5.5//backup/5.5/normal(非壓縮)、/backup/5.5/compress(壓縮)./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%),節省儲存空間與網路傳輸時間。
mysqladmin shutdown -uroot -prm -rf /data/mysql5.5/*(保留目錄本身)./mysqlbackup \ --defaults-file=/service/mysql5.5/my.cnf \ --backup-dir=/backup/5.5/normal \ apply-log
此步驟使備份檔案達到「一致性狀態」,可直接作為數據目錄啟動。輸出 Full backup prepared for recovery successfully.
./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
資料筆數與備份前一致,查詢正常,恢復成功。
apply-log 不可跳過:直接 copy-back 未 apply 的備份會導致 InnoDB crash recovery 失敗或資料不一致。--uncompress 解壓再 apply-log,或使用 copy-back-and-apply-log(MEB 4.0+ 支援)。Start LSN / End LSN)。mysql_upgrade)。MEB 還原核心三步曲:apply-log → copy-back → 權限修正啟動。生產環境建議每季演練一次全量恢復,驗證備份可用性與 RTO/RPO 指標。