博客
关于我
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/

    你可能感兴趣的文章
    mysqldump的一些用法
    查看>>
    mysqli
    查看>>
    MySQLIntegrityConstraintViolationException异常处理
    查看>>
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>