0


【MySQL备份】Percona XtraBackup基础篇


1.关于Percona XtraBackup

Percona XtraBackup是世界上唯一的开源、免费的MySQL热备份 为InnoDB和XtraDB执行非阻塞备份的软件 数据库。使用Percona XtraBackup,您可以获得以下好处:

  • 快速可靠地完成备份
  • 备份期间不中断的事务处理
  • 节省磁盘空间和网络带宽
  • 自动备份验证
  • 更快的恢复时间导致更高的延迟

2. Percona XtraBackup有哪些特点?

以下是Percona XtraBackup功能的简短列表。

  • 创建热InnoDB备份而无需暂停数据库
  • 对MySQL进行增量备份
  • 将压缩的MySQL备份流式传输到另一台服务器
  • 在线在MySQL服务器之间移动表
  • 轻松创建新的MySQL复制副本
  • 备份MySQL而不增加服务器负载
  • 备份锁是Percona Server 5.6+中可用的FLUSH TABLES WITH READ LOCK的轻量级替代方案。Percona XtraBackup使用它们自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。
  • Percona XtraBackup根据每秒IO操作数执行限制。
  • Percona XtraBackup跳过辅助索引页,并在准备紧凑备份时重新创建它们。
  • Percona XtraBackup甚至可以从完整备份中导出单个表,无论InnoDB版本如何。
  • 使用Percona XtraBackup导出的表可以导入Percona Server 5.1、5.5或5.6+或MySQL 5.6+。

3.安装Percona XtraBackup

3.1.环境信息

主机IP操作系统Mysql版本XtraBackup版本172.17.0.2CentOS Stream release 98.0.378.0.35

3.2.安装步骤

Percona XtraBackup的安装方法有三中YUM仓库安装,RPM包安装,源码编译安装,下面介绍到的是YUM仓库安装

  1. root用户身份或使用sudo运行以下命令来安装Percona yum仓库:sudo yum install \https://repo.percona.com/yum/percona-release-latest.\noarch.rpm
  2. 启用存储库:sudo percona-release enable-only tools release如果Percona XtraBackup预期与 上游MySQL服务器,只需要开启`tools仓库:sudo percona-release enable-only tools
  3. 通过运行以下命令安装Percona XtraBackup:sudo yum install percona-xtrabackup-80> 警告:> > 在CentOS 6上安装Percona XtraBackup之前,请确保安装了> > libev> > 软件包。对于此操作系统,可以从EPEL存储库中获得> > libev> > 包。
  4. 要对使用LZ4ZSTD压缩算法进行的备份进行重新编译,请安装相应的软件包:sudo yum install zstd

4. xtrabackup内部流程图

5.Percona XtraBackup基础语法

Percona XtraBackup 提供了一系列丰富的命令行选项来执行MySQL和Percona Server的热备份操作。以下是一些基本和常用的语法示例,涵盖了全量备份、增量备份、备份准备和恢复等操作:

5.1.全量备份

xtrabackup --backup --user=root --password=<your_password> \ 2 --host=<hostname_or_ip> --port=<port_number> \ 3 --target-dir=<backup_directory>
  • --backup 表示执行备份操作。
  • --user--password 分别指定MySQL的用户名和密码。
  • --host--port 指定MySQL服务器的地址和端口。
  • --target-dir 指定备份文件存放的目录。

5.2.增量备份

5.2.1.基于全量备份的增量备份

xtrabackup --backup --incremental-basedir=<full_backup_directory> \ 2 --target-dir=<incremental_backup_directory> \ 3 --user=root --password=<your_password> \ 4 --host=<hostname_or_ip> --port=<port_number>
  • --incremental-basedir 指定增量备份基于的全量备份目录。

5.2.2.基于前一个增量备份的增量备份

xtrabackup --backup --incremental-basedir=<previous_incremental_backup_directory> \ 2 --target-dir=<new_incremental_backup_directory> \ 3 --user=root --password=<your_password> \ 4 --host=<hostname_or_ip> --port=<port_number>

5.2.3.备份准备

对于全量备份,执行以下命令准备数据以便恢复:

xtrabackup --prepare --apply-log-only --target-dir=<backup_directory>

对于增量备份链,需要先对全量备份进行准备,然后依次对每个增量备份执行准备操作,最终对整个链进行最终的准备:

xtrabackup --prepare --apply-log-only --target-dir=<prepared_full_backup_directory> \ 2 --incremental-dir=<incremental_backup_directory>

5.3.数据恢复

将准备好的备份数据恢复到MySQL数据目录:

# 先停止MySQL服务
sudo systemctl stop mysql

# 将备份数据复制到MySQL数据目录(示例使用全量备份)
rsync -avP <prepared_backup_directory>/ /var/lib/mysql/

# 调整文件权限和属主
chown -R mysql:mysql /var/lib/mysql/

# 启动MySQL服务
sudo systemctl start mysql

6.总结

本篇文章介绍了Percona XtraBackup工具的安装、使用以及原理,后面会发布Percona XtraBackup的实战篇

标签: mysql 数据库

本文转载自: https://blog.csdn.net/weixin_72610956/article/details/140104014
版权归原作者 周杰伦的稻香 所有, 如有侵权,请联系我们删除。

“【MySQL备份】Percona XtraBackup基础篇”的评论:

还没有评论