删库跑路?两种“套路”教你使用xtraback备份MySQL数据库


640?wx_fmt=png

黑马程序员视频库

播妞微信号:mm7718mm

传智播客旗下互联网资讯、学习资源免费分享平台


mysqldump备份方式是采用逻辑备份。最大的缺陷就是备份和恢复的速度都慢,对于一个50G的数据库而言,这个速度还是可以接受的,但是如果数据库非常大,那在使用mysqdump备份就不是太合适了。

这时候就需要一种很好用又高效的工具,xtraback 就是其中的一款,号称免费版的innodb hotbackup

xtraback特点如下:

  1. 备份过程快速,可靠

  2. 备份过程不会打断正在执行的事务

  3. 能够基于压缩等功能节约磁盘空间和流量

  4. 自动实现备份检验

  5. 还原速度快

一、安装xtraback

1)下载xtraback

 
 

640?wx_fmt=jpeg

2)解压

 
 

3)进入解压目录复制bin下的所有程序到/usr/bin下即可

 
 

xtraback是用于热备份innodb,xtradb表中数据的工具,支持在线热备份,可以在不加锁的情况下备份innodb数据表,不过此工具不能操作myisam引擎表

4)安装相关的插件

 
 

5)下载percona-toolkit并安装

 
 

二、备份

方案一:xtrabackup完全备份+binlog增量备份 (需要开启bin-log日志)

创建备份目录

 
 

首先我们创一个test库,在test库中创建一个tb1的表,在tb1表中插入三行数据,如下:

640?wx_fmt=jpeg

插入数据后我们进行完全备份 如下:

 
 

以上完全备份路径为我们刚刚创建的mysqlbackup目录下。

出现以下提示证明备份成功

640?wx_fmt=jpeg

备份后的文件如下:

640?wx_fmt=jpeg

至此全备完全成功,然后向mysql某个库插入几条数据,然后进行增量备份

对完全备份的后数据库更改进行二进制日志增量备份:

查看完全备份时binlog日志位置(position):

640?wx_fmt=jpeg

以上就是我们完全备份完成后的位置,那么如果我们现在插入数据的话,是从这个位置开始的,从这个位置开始的我们称为增量备份,现在我们在tb1表中插入数据如下:

640?wx_fmt=jpeg

增量备份二进制文件:

 
 

备份完成后,我们模拟数据库损坏,误删操作,如下

 
 

三、恢复数据库

首先恢复我们的完全备份,也就是tom1/2/3的数据 如下:

 
 

出现以下提示证明还原成功

640?wx_fmt=jpeg

640?wx_fmt=jpeg

当数据恢复至DATADIR目录以后,还需要确保所有数据文件的属主和属组均为正确的用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。如:

 
 

重启mysql服务查看是否还原成功

640?wx_fmt=jpeg

以上看出完全备份已经还原成功,因为我们在完全备份的时候插入了3行数据,那么接下来我们还原增量备份如下:

为了防止还原时产生大量的二进制日志,在还原时可临时关闭二进制日志后再还原:

640?wx_fmt=jpeg

随后我们验证是否还原成功!

640?wx_fmt=jpeg

此时我们已经全部恢复成功,以上通过binlog+xtrabackup工具来实现的备份,是不是感觉有点小麻烦,如感觉到麻烦请看-以下方案二:

一、xtrabackup完全备份+xtrabacup增量备份

测试环境准备

创建一个测试数据库,并创建一张表输入几行数据

640?wx_fmt=jpeg

以上操作解释:

创建了一个test库,在test库中创建了xx表,在xx表中插入了tom1和tom2的数据。

接下来执行完全备份如下:

 
 

以上黑色部分是存放位置。出现以下证明备份成功

640?wx_fmt=jpeg

这时候我们再次插入数据,进行一次增量备份

640?wx_fmt=jpeg

备份第一次增量如下:

 
 

640?wx_fmt=jpeg

出现以下表示备份成功!

640?wx_fmt=jpeg

以上备份路径为:/opt/mysqlbackup/inc/我们可以查看备份的文件

640?wx_fmt=jpeg

接下来在xx表中再次插入数据,进行第二次增量备份

640?wx_fmt=jpeg

第二次增量备份如下:

 
 

出现以下提示证明备份成功

640?wx_fmt=jpeg

xtrabacup进行增量恢复

为了实现效果我把xx表删了

640?wx_fmt=jpeg

开始恢复完全备份如下:

 
 

640?wx_fmt=jpeg

二、恢复第一次增量(tom3)

 
 

640?wx_fmt=jpeg

三、恢复第二次增量

 
 

640?wx_fmt=jpeg

恢复整个库

 
 

640?wx_fmt=jpeg

停止mysql数据库-开始rsync数据文件

 
 

640?wx_fmt=jpeg

授予mysql访问权限

启动mysql服务查看还原是否成功

640?wx_fmt=jpeg

文章整理于轻松学习Linux

今天的福利时刻

MySQL学习路线图及教程统统送给你

完整资源获取方式

请添加播妞微信号,回复My01”即可获取



推荐阅读:


它被称为“蓝领”的编程语言!90%的财富500强公司都在使用!

2019 互联网校招薪酬曝光!你好像又是拖后腿的人啊~

最难就业季!2019年毕业生达830万,但这类人才被企业抢着要!




640?wx_fmt=gif




文章好看就点这里 640?wx_fmt=gif


▼点击 阅读原文 加入程序员大咖群


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值