美文网首页
xtrabackup实现完全备份、增量备份和部分备份

xtrabackup实现完全备份、增量备份和部分备份

作者: 任总 | 来源:发表于2018-11-02 23:48 被阅读20次

    一、Xtrabackup备份工具

    • Percona公司针对innodb存储引擎的数据库存储备份工具Xtrabackup,对innodb官方备份工具innodbbackup的二次研发和封装,支持热备份和增量备份:

    • 下载网站:https://www.percona.com/downloads/XtraBackup/LATEST/

    • 使用版本:
      percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm

    二、Xtrabackup特点

    • 对MyISAM存储引擎支持温备,不支持增量备份;
    • 对InnoDB支持热备,增量备份;
    • 物理备份,速率快、可靠;备份完成后自动校验备份结果集是否可用;还原速度快;
    使用格式

    Usage: [innobackupex [--defaults-file=#] --backup | innobackupex [--defaults-file=#] --prepare] [OPTIONS]

    备份使用的日志:

    过程:备份 --> 应用日志 --> 还原
    应用日志:--apply-log
    还原:--copy-back

    三、完全备份

    #完全备份到指定目录
    innobackupex --user=root --p 123 -H localhost /data/backup/ 
    #查看备份目录内容 
    ls /data/backup/2108_xxxx
    #还原数据库,确认目录下没有数据
    mkdir /data/backup -pv
    #在备份点目录下,合并已提交的事物,回滚未提交的事物
    innobackupex --apply-log  ./
    #复制备份点的备份目录,到此要恢复的目录下
    innobackupex --copy-back ./
    #修改mysql目录下属主属组
    chown -R mysql.mysql  /var/lib/mysql/
    #启动mysql
    systemctl start mariadb.service
    

    四、增量备份

    #因为Myisa不支持增量,修改存储引擎为innodb
    USE 'hellodb';
    
    #指明基于那个全量备份路径做增量备份
    innobackupex -u root -p 123 --incrementanl /data/backup/  --incremental-basedir=/data/backup/2018_xx1
    #指明基于上一个增量备份路径做增量备份
    innobackupex -u root -p 123 --incrementanl /data/backup/  --incremental-basedir=/data/backup/2018_xx2
    #备份二进制文件
    cd /data/backup/2018.xx2
    less xtravackup_binlog_info #查看最后位置
    #保持二进制文件到指定目录
    cd /var/lib/mysql
    mysqlbinlog -j xxxx master-log.xxxxx > /data/backup/binlog.sql
    
    #还原数据库
    #准备,全量合并第一个增量备份,只提交不回滚
    innobackupex --apply-log --redo-only 2018.xxx  --incremental-dir=2018.xx1
    #准备,全量合并第二个增量备份,只提交不回滚
    innobackupex --apply-log --redo-only 2018.xxx  --incremental-dir=2018.xx2
    #对合并后的全量备份做回滚
    innobackupex --apply-log  2018.xxx
    #恢复
    innobackupex --copy-back 2018.xxx
    cd /var/lib/mysql/
    chown -R mysql.mysql ./*
    systemctl start mariadb.service
    mysql
    mysql < /data/backup/binlog.sql
    

    五、完全备份加二进制日志binlog备份

    备份:innobackupex  --user  --password=  --host=  /PATH/TO/BACKUP_DIR
    准备:innobackupex --apply-log  /PATH/TO/BACKUP_DIR
    恢复:innobackupex --copy-back
    注意:--copy-back需要在mysqld主机本地进行,mysqld服务不能启动;
    innodb_log_file_size可能要重新设定;
    首先把完全和增量中的所有事物合并,然后未完成的回滚,恢复数据库
    总结:完全+增量+binlog
    备份:完全+增量+增量+...
    

    六、完全备份加差异备份

    准备:
    innobackupex --apply-log --redo-only BASEDIR
    innobackupex --apply-log --redo-only BASEDIR  --incremental-dir=INCREMENTAL-DIR
    
    恢复:
    innobackupex --copy-back BASEDIR
    
    备份单库时候命令加上:
    --databases
    
    

    相关文章

      网友评论

          本文标题:xtrabackup实现完全备份、增量备份和部分备份

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