xtrabackup新版详细说明(version-2.4.1)

本文介绍了PerconaXtrabackup2.4.1的编译依赖与新特性,包括对不同MySQL版本的支持、GTID支持情况、并行压缩与rsync选项的应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.cnblogs.com/billyxp/p/5305676.html

Percona Xtrabackup 2.4.1

编译及软件依赖

centos5,6 需要升级cmake至2.8.2版本以上,解决:安装cmake版本3.4.3测试通过
centos5 gcc g++ 需要升级gcc至4.4以上上 ,解决:安装4.4.7测试通过
另外xtrabackcup另外Boost版本需要1.59.0版本或以上,目前centos5,6默认是1.41.0。解决:升级至1.59.0

GTID支持情况

测试5.6,5.7开启GTID下可以正常备份,还原
对MySQL5.5,MySQL5.6版本支持
5.6在开启和关闭gtid模式下都可以正常备份还原
5.5可以正常备份还原
5.6部分表导出还原测试正常

对现有版本结合新特性的建议

  • xtrabackup支持非Innodb表备份,并且Innobackupex在下一版本中移除,建议通过xtrabackup替换innobackupex
  • 流式备份通过–stream指定格式为xbtream而替代tar,支持streaming格式的并行备份和压缩
  • 之前脚本使用第三方压缩工具pbzip2进行压缩。建议通过–compress 和–compress-threads选项进行并行压缩
  • 指定–safe-slave-backup,增加备份的一致性。(这个选项停止SQL线程并且等到show status中的slave_open_temp_tables为0的时候开始备份,如果没有打开临时表,bakcup会立刻开始,否则SQL线程启动或者关闭知道没有打开的临时表。如果slave_open_temp_tables在–safe-slave-backup-timeount(默认300秒)秒之后不为0,从库sql线程会在备份完成的时候重启)
  • 指定–rsync选项,加速备份过程 (为了加速备份过程,同时减小FLUSH TBALES WITH READ LOCAK阻塞写的时间,当该选项指定时innobackupex使用rsync拷贝所有的非InnoDB文件替换cp。尤其适用于有大量的库和表的时候会更快。innobackup会调用rsync两次。1、执行flush tables with read lock前后 ;2、减少读锁被持有的时间内。因为第一调用在刷新读锁之前,所以它仅仅同步那些非事务的数据的变化)
  • 针对紧凑备份和增量备份在虽然某些场景下非常有用,与刘伟商讨过暂时继续先不做计划做到统一版本中去

release历史

  • 2.4.1 支持MySQL5.7(5.7.10)
  • 2.3.2 命令行语法跟随MySQL5.6的变化而变化。另外命令行支持–datadir
  • 2.3.1 innobackupex脚本用c重写,并且只是xtrabackup的符号连接。innobackupex支持2.2版本所有的特性,但是目前已降级在下个Major版本中移除,innobackupex将不支持所有新特性的语法,同时xtrabackup现在支持MyISAM的拷贝并且支持innobakcupex的所有特性。innobackupex先前特性的语法xtrabackup同样支持
  • 2.2.21 支持5.6(基于5.6.24版本)
  • 2.2.8 基于5.6.22 (解决当总redo log超过4G,prepare会失败的问题)
  • 2.2.6 通过show variables读取Mysql选项。在初始化表扫描的时候输出更详细信息
  • 2.2.5 基于5.6.21
  • 2.2.1 移除xtrabackup_56 xtrabakcup_55,只保留xtrabakcup.移除Build脚本,支持cmake编译。基于5.6.16
  • 2.1.6 innobackupex –force-non-empty-directories
  • 2.1.4 MySQL versions 5.1.70, 5.5.30, 5.6.11
    innobackupex –no-lock ,拷贝非Innodb数据时不停止复制线程,但是条件是备份期间非事务型表上不能有DDL或者DML操作
    innobackupex –decrypt and innobackupex –decompress,
  • 2.1.1 支持紧凑备份,加密备份。不在支持5.0内置Innodb和5.1内置Innoddb。移除–remote-host选项
  • 2.1.0 支持mysql5.6的所有特性(GTID, 可移动表空间,独立undo表空间,5.6样式的buffer pool导出文件)
    支持5.6引入的innodb buffer pool预载。buffer pool dumps可以生成或者导入加速启动。在备份时buffer
    pool dump拷贝到备份目录,在还原阶段拷贝回data目录,
    –log-copy-interval 可配置log拷贝线程检查的间隔时间
    如果开启gtid,xtrabackup_binlog_info储存gtid的值
    支持xtrabackup –export,这个选项生成5.6样式的元数据文件。可以通过alter table import
    tablespace导入
  • 2.0.5 –defaults-extra-file 存备份用户的用户名和密码的配置文件
  • 2.0.3 支持–move-back
    1.9.1 支持压缩备份,之前能能streaming备份之后通过外部工具压缩
    支持streaming增量备份
    LRU DUMP
    1.6.4 innobackupex支持–rsync选项 在datadir目录进行两阶段rsync(首先没有写锁,之后有写锁,)减少写锁持有的时间
### 正确使用 `xtrabackup` 的 `--prepare` 参数及相关选项 #### 背景说明 在使用 Percona XtraBackup 工具时,备份文件本身并不能直接用于数据库恢复。为了使备份能够正常工作,必须先对其进行预处理(Prepare)。这一过程会应用事务日志并确保数据一致性。 --- #### 使用 `--prepare` 参数的流程 1. **执行初始准备阶段** 在完成全量备份之后,需要运行一次带有 `--prepare` 和 `--apply-log` 选项的操作来准备好备份文件。此操作的主要目的是重放所有的未提交事务,并清理不一致的数据状态。 命令如下: ```bash xtrabackup --prepare --apply-log --target-dir=/path/to/backup/ ``` 如果仅需部分增量备份,则可以加上 `--apply-log-only` 参数以防止重复应用完整的日志记录[^1]。 2. **多次增量备份的应用** 当存在多个增量备份时,在最终还原之前,需要依次对每个增量备份进行准备工作。对于中间的增量备份,应始终附加 `--apply-log-only` 参数,以免提前结束日志应用的过程。 示例命令: ```bash xtrabackup --prepare --apply-log-only --target-dir=/full_backup_dir/ --incremental-dir=/inc_backup_01/ xtrabackup --prepare --apply-log-only --target-dir=/full_backup_dir/ --incremental-dir=/inc_backup_02/ ... xtrabackup --prepare --target-dir=/full_backup_dir/ ``` 上述最后一条语句不再包含 `--apply-log-only`,因为这是整个链路中的最后一个步骤[^4]。 3. **注意事项** - 若尝试在一个已经经过 prepare 的目标目录上重新调用该功能,可能会收到警告提示:“This target seems to be already prepared.” 这是因为系统检测到当前路径下的日志已经被完全解析过了[^3]。 - 对于单个数据库或者特定表组的情况,可以通过额外设置参数 `--databases` 来限定范围。 --- #### 实际案例分析 假设有一个名为 `/home/xbackdata/mysql` 的完整备份位置,以下是具体实施方法: ```bash # 初步整理全部变更至基础层 xtrabackup --prepare --apply-log-only --target-dir=/home/xbackdata/mysql/ # 合并第一个增量更新包 xtrabackup --prepare --apply-log-only \ --target-dir=/home/xbackdata/mysql/ \ --incremental-dir=/home/xbackdata/inc1/ # 继续加入第二个增量差异集 xtrabackup --prepare --apply-log-only \ --target-dir=/home/xbackdata/mysql/ \ --incremental-dir=/home/xbackdata/inc2/ # 完成整体合并后的最终确认 xtrabackup --prepare --target-dir=/home/xbackdata/mysql/ ``` 上述脚本展示了如何逐步将多级增量调整融入原始快照之中[^2]。 --- #### 数据恢复指南 一旦完成了所有必要的 Prepare 操作后,就可以把修复完毕的内容迁移到实际生产环境里去替换原有的实例资料夹内容。通常做法是从源地址拷贝覆盖掉原有 MySQL Data Directory 下面对应的部分结构体。 示例迁移指令可能看起来像这样子: ```bash rsync -avP /home/xbackdata/mysql/* /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql/ service mysqld restart ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值