当前位置:   article > 正文

MYSQL数据库备份实战之xtrabackup(增量备份/差异备份)_xtrabackup怎么进行差异备份

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
  • 1
  • 2

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

rpm -ql percona-xtrabackup-24 
  • 1

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

增量备份

连接数据库进行完全备份

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

备份完成后查看备份结果

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

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

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

增量备份恢复流程

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

systemctl stop  mysqld
   rm -rf /var/lib/mysql/*
    rm -rf /var/log/mysqld.log 
  • 1
  • 2
  • 3

首先进行数据回滚合并

 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
  • 1
  • 2
  • 3

合并成功后 进行恢复

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

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

chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
  • 1
  • 2

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

差异备份

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

首先进行全量备份

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

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

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

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

差异备份还原

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

systemctl stop  mysqld
   rm -rf /var/lib/mysql/*
    rm -rf /var/log/mysqld.log 
  • 1
  • 2
  • 3

首先进行数据回滚合并

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/
  • 1
  • 2

现在开始恢复数据

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

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

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)
这里查询  所有数据都已恢复
  • 1
  • 2
  • 3
  • 4
  • 5
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号