美文网首页MySQL(总)MySQL备份
Xtrabackup安装备份还原<二>(未完结)

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

作者: 飞翔的Tallgeese | 来源:发表于2018-07-04 09:06 被阅读0次

    架构

    异机还原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备份脚本

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

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

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

    相关文章

      网友评论

        本文标题:Xtrabackup安装备份还原<二>(未完结)

        本文链接:https://www.haomeiwen.com/subject/ljwsuftx.html