MySQL(总)MySQL备份

Xtrabackup安装备份还原<二>(未完结)

2018-07-04  本文已影响0人  飞翔的Tallgeese

架构

异机还原IP:172.17.100.103(5.6.39)

还原IP:172.17.100.104(5.6.39)

线上备份:阿里云RDS(5.6.16)

备份IP:172.17.100.100(5.7.22)

###################################################

实验一:Xtrabackup流备

###################################################

惯例性的先处理报错

报错原因:InnoDB: Error number 24 means 'Too many open files'

检查系统层面的参数ulimit

可以看到open files对应的是-n

ulimit -n 65535将该值修改为65535

或者修改/etc/security/limits.conf

在最底下添加2行,然后logout重新登陆会话

在/etc/my.cnf里面添加

open_files_limit=20480

重启mysql

发现该参数已经得到修改

重新执行innobackupex,正常执行。

#执行流备到异机

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf -uroot -pbeacon --stream=tar /tmp | ssh root@172.17.100.103 \ "cat - > /data/Xtrabackup/bak.tar"

第一个粗体是本机的路径;第二个粗体引号前面一定要有空格,否则引号会被转义;第三个粗体是异机的路径

实际执行中,本机路径下不会生成任何文件,最终的文件会被生成到异机的指定路径下

最终这个bak.tar会生成到172.17.100.103的/data/Xtrabackup路径下

注意的是,如果用tar压缩成了gz文件,在103上执行解压时需要采用-i参数

tar -xif bak.tar.gz

在103上恢复之前,需要prepare;因为流式备份不会prepare

###################################################

实验二:Xtrabackup增量备份

###################################################

插曲

之前把线上的5.6版本的mysql恢复到本机5.6和5.7的库上均没有问题

今天试了下,把5.7的库恢复到5.6,提示为失败

MySQL支持向后兼容,但是向前是不行滴

#首先做一个全备

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf -uroot -pbeacon /data/Xtrabackup/

#数据库进行一次事务操作

#基于前面的全备进行增备

全备路径:/data/Xtrabackup/

增备路径:/data/Incremental/

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf -uroot -pbeacon --incremental --incremental-basedir=/data/Xtrabackup/2018-07-05_17-25-03/ /data/Incremental/

第一个粗体部分是全备的路径;第二个粗体部分是增备路径

查看lsn的变化

#基于增备进行增备

前面一次增备的lsn为57454873398 

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf -uroot -pbeacon --incremental --incremental-lsn=57454873398 /data/Incremental/

基于前面的(2次)增备进行还原

①#将全量备份直接解压到数据路径下/data/mysql/mysql3306/data/

#基于全量的还原(和普通全量还原相比,就是多了一个--redo-only参数)

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf --apply-log --redo-only /data/mysql/mysql3306/data/

②#将增量备份(除开最后一次)解压到其他路径下/data/Incremental/2018-07-05_17-26-22/

#基于前面的全量,进行增量(除开最后一次增量)的还原,有--redo-only参数,还有--incremental-dir参数;最后跟着全量恢复的路径

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf --apply-log --redo-only --incremental-dir=/data/Incremental/2018-07-05_17-26-22/ /data/mysql/mysql3306/data/

③#将最后一次增量备份解压到对应路径下/data/Incremental/2018-07-05_17-35-04/ 

#基于前面的增量完成最后一次增量的恢复,没有--redo-only参数,incremental-dir写成最后一次增备的路径

innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf --apply-log --incremental-dir=/data/Incremental/2018-07-05_17-35-04/ /data/mysql/mysql3306/data/

修改数据路径的权限为mysql,打开数据库,确认恢复成功

###################################################

实验三:Xtrabackup主从的备份

###################################################

###################################################

实验四:Xtrabackup备份的校验

###################################################

###################################################

实验五:Xtrabackup备份脚本

###################################################

参考文档:艺龄妹子的流备

参考文档:艺龄妹子的流备脚本

上一篇下一篇

猜你喜欢

热点阅读