删库跑路?这篇文章教你如何使用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

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


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

查看所有标签

猜你喜欢:

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

Linux Device Drivers

Linux Device Drivers

Jonathan Corbet、Alessandro Rubini、Greg Kroah-Hartman / O'Reilly Media / 2005-2-17 / USD 39.95

Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas ......一起来看看 《Linux Device Drivers》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具