删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

栏目: 数据库 · 发布时间: 6年前

内容简介:这时候就需要一种很好用又高效的工具,xtraback 就是其中的一款,号称免费版的innodb hotbackupxtraback特点如下:

删库跑路?这篇文章教你如何使用xtraback备份 <a href='https://www.codercto.com/topics/18746.html'>MySQL</a> 数据库

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

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

xtraback特点如下:

  1. 备份过程快速,可靠

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

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

  4. 自动实现备份检验

  5. 还原速度快

二、安装xtraback

1)下载xtraback

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz  

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

2)解压

[root@master ~]# tar zxf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz  

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

[root@master ~]# cd percona-xtrabackup-2.4.4-Linux-x86_64/  
[root@master percona-xtrabackup-2.4.4-Linux-x86_64]# cp bin/* /usr/bin/ 

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

4)安装相关的插件

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5 –y 

5)下载percona-toolkit并安装

wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm  
[root@master ~]# rpm -ivh percona-toolkit-2.2.19-1.noarch.rpm  
warning: percona-toolkit-2.2.19-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY  
Preparing... ################################# [100%]  
Updating / installing...  
 1:percona-toolkit-2.2.19-1 ################################# [100%] 

三、备份

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

创建备份目录

[root@master ~]# mkdir -p /opt/mysqlbackup/{full,inc} 

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

[root@master ~]# innobackupex --user=root --password=pwd123 /opt/mysqlbackup/full/ 

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

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

备份后的文件如下:

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

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

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

增量备份二进制文件:

[root@master ~]# mysqlbinlog --start-position=1279 /usr/local/mysql/data/mysql-bin.000001 > /opt/mysqlbackup/inc/`date +%F`.sql 

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

[root@master ~]# rm -rf /usr/local/mysql/data/*  

恢复数据库

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

[root@master ~]#innobackupex --copy-back /opt/mysqlbackup/full/2017-11-21_11-47-42/ 

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

# chown -R mysql:mysql /usr/local/mysql/data/ 

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

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

测试环境准备

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

以上操作解释:

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

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

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/full/full_incre_$(date +%Y%m%d_%H%M%S)  

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

备份第一次增量如下:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/full/full_incre_20171121_123051/ 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

出现以下表示备份成功!

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

第二次增量备份如下:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/ 

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

xtrabacup进行增量恢复

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

开始恢复完全备份如下:

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/ 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

三、恢复第二次增量

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_125202 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

恢复整个库

[root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

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

[root@master ~]# systemctl stop mysqld  
[root@master ~]# cd /opt/mysqlbackup/full/full_incre_20171121_123051/  
[root@master full_incre_20171121_123051]# rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /usr/local/mysql/data/ 

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

授予mysql访问权限

[root@master ~]# chown -R mysql:mysql /usr/local/mysql/data/ 

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

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

删库跑路?这篇文章教你如何使用xtraback备份MySQL数据库

1024 程序员 节日Happy

希望对您有所帮助,再见~


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

总开关

总开关

[美] 吴修铭 / 顾佳 / 中信出版社 / 2011-8 / 49.00元

当收音机经历从真空管收音机到半导体收音机,再到电晶体收音机的发展升级时,人们觉得自己的资讯来源美满得无可复加了。当约翰.洛吉.贝尔德发明了电视以后,在很长一段时间内,人们都认为电视就是他们所拥有的﹑也是所愿意拥有的最好的资讯媒介。 时至今日,互联网的震撼不亚于以往任何媒介,它给我们带来了最大的信息量,最便捷的自我表达,最迅速的沟通。互联网似乎比以往任何媒介都具有优越性。在互联网成为这个时代主......一起来看看 《总开关》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具