https://blog.csdn.net/csm201314/article/details/79706714

 

本文链接:https://blog.csdn.net/csm201314/article/details/79706714
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
1
2
3
4
5
6
7
单数据库备份
因为innobackupex可实现热备,无须停止数据库服务。
这里简单把我在本地备份的步骤写一下。

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

sudo innobackupex –user=root –password=12345678 –databases=DB auto_backup/
1
参数一目了然,需要说明的是如果没有指定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
1
增量备份指令与全备份指令略有不同,–incremetal参数指明这是一次增量备份,而后指明放置增量备份的文件夹的名称。
–incremental-basedir指明此次备份是基于哪一次备份进行的增量备份的文件夹,注意,这里可以是全备份,也可以是增量备份。

可以看到,在我们指定的auto_backup文件夹中,我们生成了一个标有时间的数据库增量备份文件夹,我们用 mv 指令将其重命名为 increment_backup。

两个文件夹中的xtrabackup_checkpoints可以了解到备份类型,Lsn,日志偏移量等信息,因为在做增量备份前没有对数据库进行增删操作,两个备份的last_lsn没有发生变化。

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

service mysql stop
1
然后,备份前的准备:

sudo innobackupex –apply-log –redo-only –no-lock auto_backup/full_backup
1
将增量备份还原到全备份中:

sudo innobackupex –apply-log –redo-only –no-lock auto_backup/full_backup –incremental-dir=auto_backup/increment_backup
1
然后,通过直接复制文件的方式,但是可能会产生一致性问题(TODO):

sudo cp auto_backup/full_backup/. /var/lib/mysql/ -rf
1
修改数据文件目录权限:

sudo chown -R mysql /var/lib/mysql
1
启动数据库服务:

service mysql start
1
大功告成!
————————————————
版权声明:本文为CSDN博主「csm201314」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csm201314/article/details/79706714

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注