MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)

xtrabackup

  • Percona
    官网:www.percona.com
    percona-server
    InnoDB --> XtraDB
    Xtrabackup
    percona提供的mysql数据库备份工具,惟一开源的能够对innodb和xtradb数据库进行热备的工具
    手册:https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html
    特点:
    备份还原过程快速、可靠
    备份过程不会打断正在执行的事务
    能够基于压缩等功能节约磁盘空间和流量
    自动实现备份检验
    开源,免费

*由于前几天发过有mysql的安装教程这里就不解释那么多了 *

安装xtrabackup

这里我们使用yum安装

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum -y install percona-xtrabackup-24.x86_64

安装成功后查看一下是否完成

rpm -ql percona-xtrabackup-24 

备份方式有两种
1.增量备份:每次仅备份自上一次备份(注意是上一次,不是第一次)以来有变化的文件,所 以备份体积小,备份速度快,但是恢复的时候,需要按备份时间顺序,逐个备份版本进行恢复,恢复时间长。
2.差量备份: 占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后 一次的差异版本(包含所有的差异),恢复速度介于完整备份和增量备份之间。

增量备份

连接数据库进行完全备份

innobackupex --user=root --password='123456' /xtrabackup/full

备份完成后查看备份结果

在这里插入图片描述时隔一天我再次备份,使用增量备份

innobackupex --user=root --password='Zwl159...' --incremental  /xtrabackup/full/  --incremental-basedir=/xtrabackup/full/2021-10-09_02-10-47/

在这里插入图片描述这里发现我备份的数据比起全备来说少很多,这是因为我备份的数据是根据上次备份时的节点 开始备份的

增量备份恢复流程

模拟恢复流程 我这里停止数据库服务后 删除我的库和日志文件

systemctl stop  mysqld
   rm -rf /var/lib/mysql/*
    rm -rf /var/log/mysqld.log 

首先进行数据回滚合并

 innobackupex --apply-log --redo-only /xtrabackup/full/2021-10-09_02-10-47
 
 innobackupex --apply-log --redo-only /xtrabackup/full/2021-10-09_02-10-47 --incremental-dir=/xtrabackup/full/2021-10-10_00-07-48

合并成功后 进行恢复

nnobackupex --copy-back /xtrabackup/full/2021-10-09_02-10-47

数据恢复成功后对数据库服务进行恢复

chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld

数据库起来后验证一下是否成功
这里为了验证了一下
我第一次全量备份插入了一个id为1的字段
第二次增量备份我插入了一个id为2的字段
现在全部恢复成功
在这里插入图片描述

差异备份

差异备份比较于增量备份比较好理解
每次差异备份都是和全量备份的数据进行比较 进行差异备份

首先进行全量备份

innobackupex --user=root --password='Zwl159...'  /xtrabackup

全备后查看 文件是否成功备份
在这里插入图片描述
这里是我的全备数据,这时我要写入一些数据进行差异备份
在这里插入图片描述
我这里插入了几条字段
进行差异备份

innobackupex --user=root --password='Zwl159...'  --incremental /xtrabackup  --incremental-basedir=/xtrabackup/2021-10-10_00-52-53

备份后查一下
在这里插入图片描述
这里显示的大小就是差异的数据大小

差异备份还原

模拟恢复流程 我这里停止数据库服务后 删除我的库和日志文件

systemctl stop  mysqld
   rm -rf /var/lib/mysql/*
    rm -rf /var/log/mysqld.log 

首先进行数据回滚合并

innobackupex --apply-log --redo-only /xtrabackup/2021-10-10_00-52-53
innobackupex --apply-log --redo-only /xtrabackup/2021-10-10_00-52-53 --incremental-dir=/xtrabackup/2021-10-11_00-01-39/

现在开始恢复数据

innobackupex --copy-back /xtrabackup/2021-10-10_00-52-53/

数据恢复成功后对数据库服务进行恢复

chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld

![在这里插入图片描述](https://img-blog.csdnimg.cn/2b03fe1d253d4c888c50b54098054140.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAWldM54ix5oqA5pyv,size_20,color_FFFFFF,t_70,g_se,x_16)
这里查询  所有数据都已恢复
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值