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

大數據量 MySQL 備份還原利器:innobackupex/xtrabackup 完整教程(全量、增量、壓縮、單庫)

     編輯:MySQL 綜合教學

大數據量 MySQL 備份還原利器:innobackupex/xtrabackup 完整教程(全量、增量、壓縮、單庫)

超 10GB 用 mysqldump 導出極慢。Percona XtraBackup 支援 InnoDB 熱備份(不鎖表)、增量備份、流式傳輸、MyISAM 鎖表備份。本文涵蓋安裝、配置、全量/增量備份還原、常用參數與避坑指南。

核心概念

  • xtrabackup:僅備份 InnoDB/XtraDB,C 程式,極快。
  • innobackupex:Perl 封裝,同時支援 InnoDB + MyISAM(需全局讀鎖),參數更豐富(--slave-info、--stream 等)。
  • 增量原理:記錄上次備份 LSN(Log Sequence Number),僅拷貝 LSN 變更的頁。

安裝

[mysqld]
datadir=/var/lib/mysql
innodb_log_file_size=5M  # 若報 log file size mismatch 需與實際一致

全量備份與還原

# 基於全量做第一次增量
innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/backup/full/2024-01-15_10-00-00 --incremental /backup/inc/

# 基於上一次增量做第二次增量
innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/backup/inc/2024-01-15_12-00-00 --incremental /backup/inc/

# 合並增量到全量(--redo-only 跳過 rollback)
innobackupex --apply-log --redo-only /backup/full/2024-01-15_10-00-00
innobackupex --apply-log --redo-only /backup/full/2024-01-15_10-00-00 --incremental-dir=/backup/inc/2024-01-15_12-00-00
innobackupex --apply-log --redo-only /backup/full/2024-01-15_10-00-00 --incremental-dir=/backup/inc/2024-01-15_14-00-00

# 最後對合並後的全量目錄做一次完整 --apply-log,再 --copy-back 還原

單庫備份與避坑

  • --databases=db_name 或 --include=db_name.* 指定單庫。
  • 單庫還原仍需全量還原再導出導入,**不支援直接單庫還原**;若需單庫級恢復,建議配合 mysqldump 或邏輯備份。
  • --tmpdir 指定大臨時目錄,防止 --stream 時 /tmp 爆滿。
  • --throttle=200 限制每秒 200 MB I/O,減輕線上影響。
  • --slave-info 備份從庫時記錄 CHANGE MASTER TO 信息,便於重搭從庫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved