首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

innobackupex 異機全量備份與恢復實戰指南

     編輯:MySQL 綜合教學

Percona XtraBackup innobackupex 生產級備份恢復流程

環境:MySQL 5.6.19,安裝 /u01/mysql,數據 /u01/mysql/data,備份目標 /u02/backup。異機恢復操作與本機一致。

一、全量備份(流式壓縮 + 並行優化)

./innobackupex --user=root --password=root --host=172.17.210.112 \
  --parallel=4 --throttle=400 --stream=tar /mysqlbak/innobackupex \
  2>/mysqlbak/innobackupex/bak.log \
  1>/mysqlbak/innobackupex/fullbak.tar

關鍵參數解析

參數作用建議值
--parallel並行複製線程數CPU 核心數 1-2 倍,默認 1
--throttleIO 限流每秒 400 操作,避免影響主庫性能
--stream=tar流式打包輸出單文件便於傳輸,體積減 30%+
2>bak.log錯誤日志重定向排查失敗核心依據

成功標誌

innobackupex: completed OK!

日志中出現 All tables unlocked、Transaction log of lsn ... was copied 表示一致性備份完成。

二、全量恢復(三步走)

前置條件

datadir 必須為空,否則報錯 Original data directory is not empty!。異機恢復先清空或重建目錄。

步驟 1:應用日志

./innobackupex --user=root --password=root1 \
  --defaults-file=/etc/my.cnf --apply-log /u02/backup/

將備份過程中產生的 redo log 應用到數據文件,使數據文件達到一致性狀態。

步驟 2:拷貝文件

./innobackupex --user=root --password=root1 \
  --defaults-file=/etc/my.cnf --copy-back /u02/backup/

依據 my.cnf 中 datadir、innodb_log_group_home_dir 等路徑,將文件拷回原位。見 Finished copying back files. 即成功。

步驟 3:修正權限


chown -R mysql:mysql /u01/mysql/data

三、常見恢復故障與對策

錯誤現象根因解決方案
PID 文件丟失、啟動失敗權限錯誤或數據目錄非空重新 chown、確保 datadir 空目錄
Can't connect to ... mysql.socksocket 文件缺失touch /tmp/mysql.sock && chown mysql:mysql /tmp/mysql.sock
Unknown/unsupported storage engine: InnoDBmy.cnf 配置缺失或路徑錯誤核對 --defaults-file 指定的配置文件

四、不壓縮備份對比


./innobackupex --user=root --password=root --host=172.17.210.112 \
  --parallel=4 --throttle=400 /mysqlbak/innobackupex \
  2>/mysqlbak/innobackupex/bak.log

生成目錄結構而非單文件,恢復時直接 --copy-back 目錄路徑,適合本機磁盤備份、網絡傳輸受限場景。

建立「每日全備 + 定期恢復演練」機制,才是備份系統真正可用的保障。

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