数据有轻重,分级灾备有的放矢 12月12日 星期五 15:00 云祺视频号准时直播
云祺直播二维码
扫码预约直播,观看精彩内容! 扫码预约直播,观看精彩内容!
关闭按钮
云祺Logo 云祺Logo
关于我们

技术分享

技术分享 innobackupex 单数据库备份和还原(增量备份)

innobackupex 单数据库备份和还原(增量备份)

2019-05-08

innobackupex 安装

命令行下安装指令如下:

$ wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_
all.deb$ sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb

$ sudo apt-get update

$ sudo apt-get install percona-xtrabackup-24

单数据库备份

因为innobackupex可实现热备,无须停止数据库服务。
这里简单把我在本地备份的步骤写一下。

首先,第一次备份需要进行一次全备(可指定对应数据库

sudo innobackupex --user=root --password=12345678 --databases=DB auto_backup/

参数一目了然,需要说明的是如果没有指定databases,那么将会把所有的database全都备份起来。最后一个参数是指定备份将会被放置的文件夹名称。然后因为备份需要权限来访问mysql数据文件所在位置,所以需要sudo。
(指令还有其他参数可参考官方文档,如有更新日后补充TODO)
这里写图片描述
可以看到,在我们指定的auto_backup文件夹中,我们生成了一个标有时间的数据库备份文件夹,为了便于与下文中的增量备份文件夹区分,我们用 mv 指令将其重命名为 full_backup。

然后,可进行增量备份

sudo innobackupex --user=root --password=12345678 --databases=DB --incremental auto_backup
/ --incremental-basedir=auto_backup/full_backup

增量备份指令与全备份指令略有不同,–incremetal参数指明这是一次增量备份,而后指明放置增量备份的文件夹的名称。
–incremental-basedir指明此次备份是基于哪一次备份进行的增量备份的文件夹,注意,这里可以是全备份,也可以是增量备份。

这里写图片描述

可以看到,在我们指定的auto_backup文件夹中,我们生成了一个标有时间的数据库增量备份文件夹,我们用 mv 指令将其重命名为 increment_backup。
这里写图片描述
两个文件夹中的xtrabackup_checkpoints可以了解到备份类型,Lsn,日志偏移量等信息,因为在做增量备份前没有对数据库进行增删操作,两个备份的last_lsn没有发生变化。

数据库备份还原

注意:在进行备份还原之前,一定要记得把mysql服务停止,否则备份恢复会失败,同时也会导致部分数据库配置文件缺失,如mysqld.sock,mysqld.pid等,解决起来很麻烦(卸载重装大法):

service mysql stop

然后,备份前的准备:

sudo innobackupex --apply-log --redo-only --no-lock auto_backup/full_backup

将增量备份还原到全备份中:

sudo innobackupex --apply-log --redo-only --no-lock auto_backup/full_backup --incremental
-dir=auto_backup/increment_backup

然后,通过直接复制文件的方式,但是可能会产生一致性问题(TODO):

sudo cp auto_backup/full_backup/. /var/lib/mysql/ -rf

修改数据文件目录权限:

sudo chown -R mysql /var/lib/mysql

启动数据库服务:

service mysql start

大功告成!

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆

您可能感兴趣的新闻 换一批

现在下载,可享15天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698