使用XtraBackup对MySQL数据库进行备份和还原
环境准备
mysql5.7(5.7.44)
centos7
xtrabackup2.4
安装
基于centos7中yum安装方式
官网地址:https://docs.percona.com/percona-xtrabackup/2.4/installation/yum_repo.html
- 安装 percona-release配置工具
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
- 查看资percona-xtrabackup源包在yum库中可用
yum list | grep percona
显示以percona-xtrabackup开头的一系列包名则表明可用使用
- 开起资源包
percona-release enable-only tools release
- 安装
yum install percona-xtrabackup-24
备份
压缩方式完全备份,xtrabackup使用qpress压缩和解压,需要先安装一下
yum install qpress
- 压缩完全备份
xtrabackup --host=127.0.0.1 --user=root --password="root" --backup --compress --compress-threads=4 --target-dir=/data/compressed/
--host: 备份的mysql IP地址
--user: 备份的mysql 用户名
--password: 备份的mysql 密码
--backup: 表明是一个备份操作
--compress: 使用改参数用于压缩备份
--compress-threads: 备份压缩的并行线程
--target-dir: 备份文件的存放目录
恢复
- 解压备份的文件
xtrabackup --decompress --target-dir=/data/compressed/
--decompress: 该选项表示解压–compress选项压缩的文件
- 准备备份
xtrabackup --prepare --apply-log-only --target-dir=/data/compressed/
--prepare: 指定备份的准备阶段 (准备一个在备份上启动mysql服务器的备份)
--apply-log-only: 备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务
–apply-log: 它的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态
- 开始备份
- 停止目的端数据库
systemctl stop mysqld
- 删除mysql数据文件内容
rm -rf /var/lib/mysql/*
- 恢复数据库
xtrabackup --copy-back --target-dir=/data/compressed/
--copy-back: 数据恢复时将备份数据文件拷贝到MySQL服务器的datadir
- 授权mysql数据文件权限
chown -R mysql:mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql
- 重启mysql
systemctl restart mysqld
