文章目录
- percona-xtrabackup备份工具
- 安装流程
- 完全备份流程
- 完全恢复流程
- 增量备份流程
- 增量恢复流程
percona-xtrabackup备份工具
安装流程
- 安装percona-xtrabackup
先准备Percona XtraBackup 8.0需要的mysql源:
yum install -y https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
yum install -y yum-utils# yum工具
查看mysql的可用版本:
yum repolist all | grep mysql
根据之前安装mysql的版本选择禁用或者启用哪一个版本:
如果要禁用mysql80版本
yum-config-manager --disable mysql80-community
如果要启用mysql57版本
yum-config-manager --enable mysql57-community
安装Percona XtraBackup 的依赖包:
yum install -y mysql-community-libs-compat
安装Percona XtraBackup 的安装源:
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
可以使用yum repolist
列出所有的源.
查看要安装的有哪些:
yum list | grep percona-xtrabackup
安装软件
yum install -y percona-xtrabackup-24.x86_64
检验安装结果
rpm -ql percona-xtrabackup-24
完全备份流程
# 命令 --user=用户 --password="密码" 备份位置
innobackupex --user=root --password="Mysql@Password123" /xtrabackup/full
可以到文件夹中进行查看
这个文件夹中的内容就是mysql的内容备份。
将二进制日志的功能打开,在mysql数据库中准备一份数据:
这是为数据库备份准备的数据。
将之前备份的文件夹删除掉,再次备份。
查看二进制日志的恢复点
这种备份只会恢复到备份点,不可以恢复到杂难点。
完全恢复流程
- 停止数据库服务
systemctl stop mysqld
- 模拟服务器损坏
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
可以再次进入到数据库中查看mysql的库。
- 生成回滚日志
指定备份点
innobackupex --apply-log /xtrabackup/full/2021-01-28_18-13-13/
- 还原
innobackupex --copy-back /xtrabackup/full/2021-01-28_18-13-13/
ls /var/lib/mysql
- 授权
chown -R mysql.mysql /var/lib/mysql
启动mysql服务
systemctl start mysqld;
增量备份流程
所谓的增量备份指的是将发生改变的数据进行备份。
- 准备工作
使用指定的数据库
创建数据库testdb
create database testdb;
进入到testdb中
use testdb
创建表
create table test (id int);
先进行完整备份:
将先前的完整备份删除
rm -rf /xtrabackup/*
进行备份
innobackupex --user=root --password="Mysql@Password123" /xtrabackup
在完整备份的基础上进行增量备份:
更新时间
date 01300000
mysql -uroot -p"Mysql@Password123" -e "insert into testdb.test values (5)"
进行增量备份,增量备份注意一定要基于前一天的变化。
innobackupex --user=root --password="Mysql@Password123" --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2021-01-29_00-00-52
可以查看文件夹
1.29是完整备份,1.30是增量备份。
增量恢复流程
- 停止数据库
systemctl stop mysqld
- 清理环境模拟损坏
rm -rf /var/lib/mysql/*
应用第一个日志回滚合并
innobackupex --apply-log --redo-only /xtrabackup/2021-01-29_00-00-52/
应用第二个日志回滚合并
innobackupex --apply-log --redo-only /xtrabackup/2021-01-29_00-00-52/ --incremental-dir=/xtrabackup/2021-01-30_00-04-52
innobackupex --copy-back /xtrabackup/2021-01-29_00-00-52
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
登陆mysql5.7查看表。
差异备份占用的空间比增量备份大,比完整备份小,差异备份就是相对于第一天来说的,而增量备份是相对于前一天的。