Author mogd 2022-05-06
Update mogd 2022-05-06
AdageDon't take anything for granted
Percona XtraBackup 工具的使用
Percona XtraBackup 基于 InnoDB 的崩溃恢复功能。它会复制 InnoDB 数据文件,从而导致数据内部不一致;但随后它会对文件执行崩溃恢复,以使它们再次成为一致的、可用的数据库
一、工作原理
Percona XtraBackup 的工作原理是在启动时记住日志序列号 ( LSN ),然后复制数据文件。这样做需要一些时间,因此如果文件正在更改,那么它们会反映数据库在不同时间点的状态。同时,Percona XtraBackup 运行一个后台进程来监视事务日志文件,并从中复制更改。Percona XtraBackup 需要不断地执行此操作,因为事务日志是以循环方式编写的,并且可以在一段时间后重用。Percona XtraBackup 自开始执行以来对数据文件的每次更改都需要事务日志记录
Percona XtraBackup 使用备份锁作为 FLUSH TABLES WITH READ LOCK 的轻量级替代品
注:此功能在 Percona Server for MySQL 5.6以上可用,MySQL 8.0 允许通过 语句获取实例级备份锁
只有在 Percona XtraBackup 完成备份所有 InnoDB/XtraDB 数据和日志后,才会对 MyISAM 和其他非 InnoDB 表 进行锁定。Percona XtraBackup 自动使用它来复制非 InnoDB 数据,以避免阻塞修改 InnoDB 表的 DML 查询
二、使用
xtrabackup 配置通过选项完成,可以使用命令行指定选项,还可以在 my.cnf
文件中指出
指定默认备份的目录
[xtrabackup]
target_dir = /data/backups/mysql/
2.1 安装
centos 系统
# 安装 Percona yum 存储库
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
# 启用存储库
percona-release enable-only tools release
# 安装 Percona XtraBackup
yum install percona-xtrabackup-80
# 安装压缩备份工具 qpress
yum install qpress
Debian or Ubuntu 系统
# 下载对应的 deb 包
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
# dpkg 安装软件包
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
# 启用存储库和更新本地缓存
percona-release enable-only tools release && apt update
# 安装 Percona XtraBackup
sudo apt install percona-xtrabackup-80
# 安装压缩备份工具 qpress
sudo apt install qpress
二进制包
wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.23-16/binary/tarball/percona-xtrabackup-8.0.23-16-Linux-x86_64.glibc2.17.tar.gz
2.2 权限
Percona XtraBackup 需要能够连接到数据库服务器并在创建备份时、在某些情况下准备时以及在恢复时对服务器和