zoukankan      html  css  js  c++  java
  • MySQL热备工具Xtrabackup

    工具介绍

      Xtrabackup是一个开源的热备工具,在Xtrabackup包中主要又Xtrabackup和innobackupex两个工具。其中Xtrabackup只能备份InnoDB和XtraDB两种引擎;innobackupex则封装了Xtrabackup,同时增加了备份MyISAM引擎的功能。

      Xtrabackup备份时不能备份表结构、触发器等,也不能只能区.ibd数据文件。另外innobackupex还不能完全支持增量备份,需要和Xtrabackup结合起来实现全备的功能。

    工具安装

    官网下载对应版本(MySQL5.7)地址https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

    下载Linux对应的依赖包

    wget http://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/rudi_m:/devel-snap/CentOS_7/x86_64/libev4-4.24-8.1.x86_64.rpm

    安装依赖包

    yum localinstall libev4-4.24-8.1.x86_64.rpm

    解压工具

    tar xf Percona-XtraBackup-2.4.20-rc8b4056-el7-x86_64-bundle.tar

    安装工具

    yum -y install percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm

    备份

    命令格式

    innobackupex [参数] [目的地址][源地址]

    常用参数

    1,全量备份

    不记录日志

    innobackupex --user=root --password=123456 /usr/local/backup/

    记录日志

    innobackupex --user=root --password=123456 /usr/local/backup/ 2>> /usr/local/backup/backup.log

    查看备份信息

    cat 2020-06-17_20-51-37/xtrabackup_checkpoints

     backup_type = full-backuped表示全量备份,from_lsn同时也等于0

    2,全量恢复

    停止数据库服务

    systemctl stop mysql

    删除MySQL数据目录

    rm -rf  /usr/loca/mysql/data/

    合并数据,使数据文件处于一致性的状态

    innobackupex --apply-log /usr/local/backup/2020-06-17_20-51-37/

    恢复

    innobackupex --copy-back /usr/local/backup/2020-06-17_20-51-37/

    重新赋予目录权限

    chown -R mysql.mysql /usr/local/mysql/data

    启动数据库

    systemctl start mysql

    验证

    mysql -p

    3,增量备份

    增量备份的实现,依赖于InnoDB页上的LSN(log sequence number),每次对数据库的修改都会导致LSN自增。增量备份会复制指定LSN<日志序列号>之后的所有数据页。

    增量备份执行命令

    innobackupex --user=root --password=123456 --incremental /usr/local/backup/ --incremental-basedir=/usr/local/backup/2020-06-17_20-51-37

    --incremental指定备份路径,--incremental-basedir指定以哪个目录为增量

    cat 2020-06-17_22-23-26/xtrabackup_checkpoints

     可以看到from_lsn和上面全量备份to_lsn序列号一样

    4,整合恢复

    参数--apply-log --redo-only先合并全备数据目录数据,确保全备数据目录数据的一致性

    innobackupex --apply-log --redo-only /usr/local/backup/2020-06-17_20-51-37/

    再将增量数据使用参数--incremental-dir合并到全备数据当中

    innobackupex --apply-log --redo-only /usr/local/backup/2020-06-17_20-51-37/ --incremental-dir=/usr/local/backup/2020-06-17_22-23-2

    停止服务

    systemctl stop mysql

    通过全备数据恢复数据库,如果有多个增量备份,需要逐一合并到全备数据当中,在进行恢复

    innoxtrabackup --copy-back /usr/local/backup/2020-06-17_20-51-37

    目录赋权

    chown -R mysql.mysql /usr/local/mysql/data

    启动服务

    systemctl start mysql

    验证

    mysql -p

  • 相关阅读:
    将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》
    深度 | 提升深度学习模型的表现,你需要这20个技巧(附论文)
    [线性代数] 矩阵白化
    基于搜索的贝叶斯网络结构学习算法-K2
    Deep learning:四十三(用Hessian Free方法训练Deep Network)
    2020年AI、CV、NLP顶会最全时间表
    浅谈人脸识别中的loss 损失函数
    控制uniFrame显示的一个管理类
    php+sqlserver之如何操作sqlserver数据库
    php支持连接sqlserver数据库
  • 原文地址:https://www.cnblogs.com/jinli1771/p/13155179.html
Copyright © 2011-2022 走看看