Rootop 服务器运维与web架构

xtrabackup 2.4.5 文档

mysql锁分为 读锁(读写都不行) 写锁(只读,不允许写入)
[root@localhost ~]# yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel perl perl-devel perl-Digest-MD5 perl-Time-HiRes perl-DBD-MySQL libev libev-devel libgcrypt libgcrypt-devel curl curl-devel python-setuptools libarchive-devel

直接rpm -ivh 安装官网下载的rpm包,根据提示缺什么装什么,直至完成。

以下内容仅为本机备份,本机恢复,如果复制到别的机器,单独恢复一个库会有问题。推荐使用备份所有库,即不加–databases=参数。

全量备份:
1、执行备份

[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp /mnt/backup/simon/full_$(date +%Y_%m_%d_%H_%M_%S)

2、删除simon库,测试

[root@localhost ~]# rm -rf /var/lib/mysql/simon/

恢复数据:
1、先关闭mysql服务
2、再处理备份数据

[root@localhost ~]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/
--apply-log处理全备中的事物,未提交的回滚,已提交的写入文件

3、恢复

[root@localhost ~]# cp -R /mnt/backup/simon/full_2017_02_19_21_29_42/simon/ /var/lib/mysql/
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql/simon/

直接复制备份的simon库的文件夹到mysql数据目录,并修改权限,启动mysql。

数据恢复完成。

增量备份(只支持innodb):
1、增量备份基于全备

[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp /mnt/backup/simon/full_$(date +%Y_%m_%d_%H_%M_%S)

2、增量备份,目录要与全备目录路径一样,否则无法执行

[root@localhost ~]# innobackupex --user=root --password=root --databases=simon --no-lock --no-timestamp --incremental-basedir=/mnt/backup/simon/full_2017_02_19_21_29_42/ --incremental /mnt/backup/simon/increment_$(date +%Y_%m_%d_%H_%M_%S)

增量恢复:
删除simon库,模拟丢失

[root@localhost ~]# rm -rf /var/lib/mysql/simon/

关闭mysql服务

将增量备份数据合并到全备中 必须用全路径,否则整合全备+增备会失败,导致数据不全,或提示错误。

[root@localhost simon]# pwd
/mnt/backup/simon
[root@localhost simon]# innobackupex --apply-log --redo-only /mnt/backup/simon/full_2017_02_19_21_29_42/
[root@localhost simon]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/ --incremental-dir=/mnt/backup/simon/increment_2017_02_19_22_16_10/
[root@localhost simon]# innobackupex --apply-log /mnt/backup/simon/full_2017_02_19_21_29_42/

[root@localhost ~]# cp -R /mnt/backup/simon/full_2017_02_19_21_29_42/simon/ /var/lib/mysql/
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql/simon/

启动mysql,数据恢复完成。

–apply-log –redo-only 作用,来自网络
redo-only 只对增量备份有作用,
对于全备份和增量备份(出最后一个增备外) 都需要加 redo-only ;
这个选项是 让xtrabackup跳过 rollback 阶段,只进行redo 阶段(中间的增备如果 rollback ,那增备之间可能无法衔接起来)

PS:
增量备份可以基于一个增量,再做增量,不过恢复起来比较繁琐。这里没有采用。

可看下下面资料:基于增量的增量备份及恢复
http://www.toxingwang.com/database/mysql/1539.html
http://blog.csdn.net/dbanote/article/details/13295727

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3666.html

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

评论已关闭。