XtraBackup备份工具确实比较强大的,支持数据库全备份、增量备份、部分备份、而且可以压缩备份。老蒋在前面的"CentOS6快速安装Xtrabackup数据库备份工具 "文章中实现服务器环境的安装,但是还没有实战测试这个工具如何使用的。因为在翻看文档的时候有各种的文章和教程,但是搜索出来的都是别人的,不经过自己测试永远不踏实。
虽然目前的中小项目用不上较大项目数据库的备份,但是老蒋在这篇文章中模拟一份网站和WEB数据库环境采用XtraBackup进行全备份和增量备份,然后尝试去复原恢复数据,这样也记录下基本的XtraBackup使用方法,这样对于一些搜罗的脚本也做一个备份使用。
本次测试的目的是在已经安装有WEB环境且有一个网站项目数据,先进行全备份,然后模拟再更新数据之后进行增量备份,然后进行人为的数据库删除破坏。利用全备份和增量备份进行恢复数据。
第一、全量备份数据库
前提是我们当前服务器环境已经安装好XtraBackup,如果没有安装可以参考这里进行安装。因为老蒋也是初次接触XtraBackup,所以只能依照网上文档先入门级的尝试,后面再进行复杂的功能测试。我们需要先进行一份全量备份,我不指定某一个数据库,我直接备份所有服务器环境的mysql数据库文件。
innobackupex --defaults-file=/etc/my.cnf --host=127.0.0.1 --port=3306 --user=root --password=laobuluo.com /home/
这里老蒋选择一个/home目录用来备份数据库时间戳目录,我们需要记录下时间戳,等会需要用到。比如这里我全备的时间戳是2018-01-29_16-04-29。如果我们需要恢复当前的全备份数据库,那如何操作呢?
innobackupex --apply-log --use-memory=64M /home/2018-01-29_16-04-29
我们姑且叫做准备备份,要不是不行的。
innobackupex --copy-back /home/2018-01-29_16-04-29
我们在恢复数据库之前需要将数据库目录文件都删除,且暂停数据库,然后再执行恢复数据库。
第二、增量备份数据库
这里模拟进行增加数据库,比如我们将网站多增加几条内容。然后再进行增量备份。
innobackupex --incremental-basedir=/home/2018-01-29_16-04-29 --incremental /home/ --host=127.0.0.1 --port=3306 --user=root --password=laobuluo.com
这里我们需要在2018-01-29_16-04-29基础之上再进行添加一个时间戳的备份。比如我们在/home目录中又看到有一个2018-01-29_16-05-36文件目录。同理,我们可以增加数据之后再进行增量备份。
第三、恢复增量备份数据库
innobackupex --apply-log --use-memory=64M --redo-only /home/2018-01-29_16-04-29
innobackupex --apply-log --use-memory=64M --redo-only /home/2018-01-29_16-04-29 --incremental-dir=/home/2018-01-29_16-06-22
准备增量备份。然后我们认为的破坏当前服务器所在数据库的mysql目录,将全部删除掉。(这里我仅仅是在测试环境测试,如果我们真实生产环境谨慎操作,需要做好备份)
innobackupex --copy-back /home/2018-01-29_16-04-29
我们在恢复数据库之前,一定要在数据库主目录文件都删除,而且服务器中数据库都关闭状态进行。且在恢复数据库之后,我们需要授权数据库的目录,然后重启数据库直到能正常运行再打开网站看看是不是正常。
本文出处:老蒋部落 » 简单测试利用XtraBackup实现全备份和增量备份过程 | 欢迎分享( 公众号:老蒋朋友圈 )