• ADADADADAD

    XtraBackup基本安装及innobackupex使用方法,远程备份[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:10:25

    作者:文/会员上传

    简介:

    #获得下载地址
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


    yum

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    #获得下载地址
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


    yum install percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


    #完全备份
    innobackupex --user=root --password=123456 /db_bak


    #恢复,已复制整个结构的方式恢复数据库,执行前必须stop mysql服务,否则会出现不可预知的错误
    service mysqld stop
    #此时恢复还是会报 /var/lib/mysql/ is not empty,需要删掉/var/lib/mysql/目录下所有的文件
    cd /var/lib/mysql/
    rm -rf /var/lib/mysql/*
    #全量恢复
    innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/ ---回写日志这一步 不能少
    innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/
    #设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
    chown -R mysql:mysql /var/lib/mysql/
    service mysqld start


    #增量备份


    innobackupex --user=root --password=123456 --incremental-basedir=/db_bak/2016-01-13_14-21-24 --incremental /db_bak


    #增量备份恢复:
    #将所有的增量备份挨个应用到完整备份的数据文件中,然后再将完整备份中的数据恢复到数据库中
    #停止mysql服务(必须)
    service mysqld stop
    #删除数据文件
    cd /var/lib/mysql/
    rm -rf /var/lib/mysql/*
    #重做全备份的日志
    innobackupex --apply-log --redo-only /db_bak/2016-01-13_14-21-24/
    #应用第一个增量备份
    innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/ --incremental-dir=/db_bak/2016-01-14_11-47-00/


    #日志已经写入全备份中,重做全备份即可
    innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/ ---回写日志这一步 不能少
    innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/
    #删除mysql日志,这一步步能少
    MySQL目录下的ib_logfile0和ib_logfile1两个文件
    cd /var/lib/mysql/
    cp ib_logfile0 ib_logfile0_bak
    cp ib_logfile1 ib_logfile1_bak
    rm -rf ib_logfile0
    rm -rf ib_logfile1
    #设置权限,恢复之后 发现权限都是root,需要修改成mysql,到了这一步全量还原算是完成了,记得重启服务
    chown -R mysql:mysql /var/lib/mysql/
    service mysqld start




    #出现数据崩溃 或者 如copied innodb but log 不符的情况
    需要设置
    innodb_force_recovery=6
    innodb_purge_thread=0
    重启服务,
    然后 在mysqldump导出数据库逻辑备份
    在将 设置改成默认
    innodb_force_recovery=0
    innodb_purge_thread=1
    重启服务 还原数据库即可,


    出现MySQL Plugin 'InnoDB' init function returned error.
    删除MySQL目录下的ib_logfile0和ib_logfile1两个文件,就可以解决问题了
    mysql 会重新生成这两个日志

    #远程备份,备份到10.50.85.104,需要安装sshpass
    cd /etc/yum.repos.d

    wgethttp://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo

    yum installsshpass

    #压缩
    innobackupex --user=root --password=123456 --stream=tar ./ | gzip | sshpass -p 'WCcj1Fylr5Hc!@' ssh root@10.50.85.104 "cat - > /var/db_bak/backup.tar.gz"


    #备份mysiam表
    myisam表的备份则是通过发出命令flushtableswithreadlock,然后拷贝myisam的相关表文件
    所以此时 只能进行读 不能进行任何写操作 这里指针对所有库


    XtraBackup基本安装及innobackupex使用方法,远程备份.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载