当前位置: 首页 > ops >正文

MySQL 数据库备份与恢复利器:Percona XtraBackup 详解

一、XtraBackup 简介

1. 什么是 XtraBackup?

XtraBackup 是 Percona 公司推出的免费开源工具,专为 InnoDB/XtraDB 引擎设计,支持 在线物理热备,具备以下核心特性:

  • 非阻塞备份:备份过程中数据库仍可读写。

  • 增量备份:仅备份自上次备份以来的变化数据,节省存储空间。

  • 快速恢复:通过事务日志(Redo Log)保证数据一致性。

2. 适用场景

  • 数据量超过 50GB,需高效备份与恢复。

  • 业务要求 24/7 高可用,无法接受停机备份。

  • 需要灵活的备份策略(如每周全备 + 每日增量备份)。


二、安装 XtraBackup

1. 环境要求

  • MySQL 版本

    • XtraBackup 2.4 → 支持 MySQL 5.6/5.7

    • XtraBackup 8.0 → 支持 MySQL 8.0

    • XtraBackup 8.1 → 支持 MySQL 8.1

2. 安装步骤(以 CentOS 为例)

# 添加 Percona YUM 仓库
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm# 启用 XtraBackup 8.0 仓库
sudo percona-release setup ps80# 安装依赖与 XtraBackup
sudo yum install epel-release
sudo yum update
sudo yum install percona-xtrabackup-80

三、全量备份与恢复

1. 全量备份流程

步骤 1:创建备份用户
CREATE USER 'admin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root123.';
GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT, BACKUP_ADMIN, SELECT ON *.* TO 'admin'@'localhost';
FLUSH PRIVILEGES;
步骤 2:执行全量备份
xtrabackup --user=admin --password=Root123. --backup --target-dir=/full_xtrabackup
步骤 3:预备备份(应用 Redo Log)
xtrabackup --prepare --target-dir=/full_xtrabackup

2. 数据恢复

# 停止 MySQL 并清空数据目录
systemctl stop mysqld
rm -rf /var/lib/mysql/*# 恢复数据
xtrabackup --copy-back --target-dir=/full_xtrabackup# 修复权限并重启
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld

四、增量备份与恢复

1. 增量备份原理

  • 基于 LSN(Log Sequence Number):仅备份自上次备份后变化的页面。

  • 依赖全量备份:增量备份必须基于一个完整的全量备份。

2. 操作示例

步骤 1:全量备份
xtrabackup --user=admin --password=Root123. --backup --target-dir=/backup/full
步骤 2:第一次增量备份
xtrabackup --user=admin --password=Root123. --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/full
步骤 3:合并增量到全量备份
# 预备全量备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/full# 合并第一次增量
xtrabackup --prepare --apply-log-only --target-dir=/backup/full --incremental-dir=/backup/inc1# 最终准备(应用所有日志)
xtrabackup --prepare --target-dir=/backup/full
步骤 4:恢复数据
xtrabackup --copy-back --target-dir=/backup/full

五、XtraBackup 的优缺点

优点

  1. 热备份:InnoDB 表备份无需锁表。

  2. 增量备份:大幅减少备份时间和存储占用。

  3. 流式压缩:支持 --stream 参数直接压缩传输。

  4. 快速恢复:通过 Redo Log 保证数据一致性。

缺点

  1. MyISAM 表限制:备份 MyISAM 表时需全局锁,可能影响主从同步。

  2. 版本兼容性:不同 MySQL 版本需匹配对应的 XtraBackup 版本。

http://www.xdnf.cn/news/9481.html

相关文章:

  • MySQL强化关键_017_索引
  • 进程的控制和调度上
  • 2tensorf
  • ElectronBot复刻-电路测试篇
  • 数据分析与应用-----使用scikit-learn构建模型
  • 跑步机的控制面板英文的意思
  • 财政票据查验接口功能解析-接口实践-医疗票据管理
  • SSM 框架深度整合实战:从零构建企业级 Java 应用
  • 华为OD最新机试真题-反转每对括号间的子串-OD统一考试(B卷)
  • Vue 3 的 <script setup> 语法糖(持续更新)
  • 尚硅谷redis7 58-62 主从复制之一主二仆
  • 【前端】JS引擎 v.s. 正则表达式引擎
  • 创建型设计模式之Singleton(单例)设计模式
  • 力扣热题100(附刷题表版)
  • 【西方哲学-0】西哲思维导图mermaid格式
  • 离线场景下扫描与修复系统缺失补丁解决方案
  • 【计算机网络】第1章:概述—协议层次及服务模型
  • 网络安全之XSS漏洞
  • Unity屏幕适配——适配信息计算和安全区域适配
  • 触控精灵 ADB运行模式填写电脑端IP教程
  • 九、【前后端联调篇】Vue3 + Axios 异步通信实战
  • ​​知识图谱:重构认知的智能革命​
  • 安世亚太:信息化和数字化的底层逻辑
  • Ansible模块——Ansible配置文件!
  • 3D建模的全景图谱:从55个工具到元宇宙的数字革命
  • C++中,`friend`关键字的使用
  • 【数据分析】Matplotlib+Pandas+Seaborn绘图
  • 玻纤效应的时序偏差
  • 大模型本地部署
  • 内网穿透,代理服务,NAT