博客
关于我
MySQL 备份 Xtrabackup
阅读量:799 次
发布时间:2023-02-10

本文共 2055 字,大约阅读时间需要 6 分钟。

MySQL 备份与恢复(基于 XtraBackup)

1. XtraBackup 简介

XtraBackup 是 Percona 开发的一款高性能 InnoDB 数据库热备份工具,支持在线热备份(即在备份过程中,不会影响数据库的读写操作)。它成为替代传统的 mysqldump 工具,特别适用于需要高效、可靠的热备份场景。

XtraBackup 的主要特点

  • 无需停止数据库:XtraBackup 能够在数据库运行时进行备份,不会对业务造成影响。
  • 支持增量备份:可以仅备份自上次完整备份以后的数据变化。
  • 高效的数据传输:将备份数据流(Redo Log)实时压缩并传输,减少网络开销。
  • 易于创建主从复制:支持基于 XtraBackup 的主从同步,简化数据库的高冗备份方案。
  • 服务器负载小:备份过程不会对数据库造成额外的负载压力。

  • 2. 了解备份方式

    MySQL 的备份方式主要有以下几种:

  • 热备份(Full Backup):基于 InnoDB 的热备份,支持在线操作。
  • 温备份(Warm Backup):仅针对 MyISAM 存储引擎,备份过程中允许读操作。
  • 冷备份(Cold Backup):需要对数据库进行全停,备份过程中不允许读写操作。
  • 逻辑备份(Logical Backup):通过 mysqldump 将数据导出为文本文件。
  • 物理备份(Physical Backup):直接复制数据库文件,包括 InnoDB 的数据文件和相关配置。

  • 3. XtraBackup 的工作原理

    3.1 XtraBackup 备份过程

  • 启动后台检测进程:在备份开始时,XtraBackup 会启动一个后台进程,实时监控 MySQL 的 Redo Log 中的写入操作,并将这些日志信息记录到一个临时文件中(xtrabackup_log)。
  • 复制数据文件:依次复制 InnoDB 的数据文件(如 ibdata1)和系统表空间文件(如 frmMYIMYD 等)。
  • 执行 FLUSH TABLES:在备份完成前,执行 FLUSH NO_WRITE_TO_BINLOG TABLES,确保所有表数据已写入二进制日志文件。
  • 解锁表:通过 UNLOCK TABLES 命令取消表的读锁,恢复表的可写状态。
  • 停止备份:将 xtrabackup_log 文件关闭,完成备份操作。
  • 3.2 XtraBackup 全量备份与恢复

  • 全量备份

    • 使用 innobackupex 命令执行全量备份:
      innobackupex --defaults-file=/etc/my.cnf /opt/2017-01-05_11-04-55/
    • 参数说明:
      • --defaults-file:指定使用的 MySQL 配置文件。
      • /opt/2017-01-05_11-04-55/:指定备份的目标目录。
  • 恢复全量备份

    • 使用 --apply-log 选项恢复备份数据:
      innobackupex --apply-log /opt/2017-01-05_11-04-55/
    • 恢复过程会将 xtrabackup_log 文件中的日志信息重新应用到数据库中,恢复数据到最新状态。
  • 增量备份

    • 基于全量备份的增量备份需要指定增量备份的目录:
      innobackupex --incremental /opt/ --incremental-basedir=/opt/2017-01-05_11-04-55/
    • 参数说明:
      • --incremental:启用增量备份功能。
      • --incremental-basedir:指定增量备份的基础目录。
  • 增量恢复

    • 恢复增量备份时,需要指定全量备份和增量备份的目录:
      innobackupex --copy-back --defaults-file=/etc/my.cnf /opt/2017-01-05_11-04-55/
    • 参数说明:
      • --copy-back:执行增量备份文件的恢复操作。
      • /opt/2017-01-05_11-04-55/:指定全量备份的目录。

  • 4. 单库备份与恢复

    4.1 安装 XtraBackup

    安装 Percona XtraBackup,可以通过以下命令:

    yum install -y percona-xtrabackup-22

    4.2 检查安装结果

    确保安装成功:

    rpm -qa | grep xtrabackup

    5. 压缩与解压

    5.1 压缩

    将备份文件压缩到 tar 格式,并传输到其他服务器:

    mkdir /tmp/dbinnobackupex --stream=tar /tmp/db | gzip > /tmp/db/$(date +%F).tar.gz

    5.2 解压

    在目标服务器上解压备份文件:

    tar -izxvf 
    <备份文件名>
    .tar.gz

    通过以上方法,可以实现 MySQL 数据库的高效热备份与恢复,XtraBackup 提供了灵活的备份策略,适用于各种复杂的数据库场景。

    转载地址:http://wkbfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL5.7.37windows解压版的安装使用
    查看>>
    mysql5.7免费下载地址
    查看>>
    mysql5.7命令总结
    查看>>
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>