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查看表。

差异备份占用的空间比增量备份大,比完整备份小,差异备份就是相对于第一天来说的,而增量备份是相对于前一天的。

猜你喜欢

转载自blog.csdn.net/qq_45671732/article/details/113178988