xtrabackup

xtrabackup

  • 特点:
    • 备份还原过程快速、可靠
    • 备份过程不会打断正在执行的事务
    • 能够基于压缩等功能节约磁盘空间和流量
    • 自动实现备份检验
    • 开源,免费
  • Xtrabackup2.2版之前包括4个可执行文件: innobackupex: Perl 脚本 xtrabackup: C/C++编译的二进制 xbcrypt: 加解密 xbstream: 支持并发写的流文件格式
  • xtrabackup 是用来备份 InnoDB 表的,不能备份非 InnoDB 表,和 MySQLServer 没有交互
  • innobackupex 脚本用来备份非 InnoDB 表,同时会调用 xtrabackup 命令来备份 InnoDB 表,还会和 MySQL Server 发送命令进行交互,如加全局读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等。即innobackupex是在xtrabackup 之上做了一层封装实现的

xtrabackup备份过程

notion image
刚开始发起一个进程,xtrackup这里是线程,预处理过程 预处理》临时使用的文件夹,将数据导出进去,有个问题,如果备份点在事务运行中的情况,若恢复最后一个时间点,是会回滚事务的 预处理完之后,在恢复到数据库中,基于文件块的方式,只有最后一次事务,才回滚(A>B>C>D 只有D才回滚事务)

xtrabackup的新版变化

  • xtrabackup版本升级到2.4后,相比之前的2.1有了比较大的变化:innobackupex 功能全部集成到 xtrabackup 里面,只有一个 binary程序,另外为了兼容考虑,innobackupex作为 xtrabackup 的软链接,即xtrabackup现在支持非Innodb表备份,并且 Innobackupex 在下一版本中移除,建议通过xtrabackup替换innobackupex
xtrabackup用法
备份生成的相关文件 使用innobackupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命名的目录中,在备份时,innobackupex还会在备份目录中创建如下文件: 1、xtrabackup\_info:innobackupex工具执行时的相关信息,包括版本,备份选项,备份时长,备份LSN(log sequence number日志序列号),BINLOG的位置 2、xtrabackup\_checkpoints:备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN范围信息,每个InnoDB页(通常为16k大小)都会包含一个日志序列号LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的 3、xtrabackup\_binlog\_info:MySQL服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置,可利用实现基于binlog的恢复 4、backup-my.cnf:备份命令用到的配置选项信息 5、xtrabackup\_logfile:备份生成的日志文件

示例:旧版xtrabackup完全备份及还原

1、在原主机
2、在目标主机

示例:新版xtrabackup完全备份及还原

1、在原主机做完全备份到/backups
2、在目标主机上

示例:旧版xtrabackup完全,增量备份及还原

1、在原主机
2、在目标主机

示例:新版xtrabackup完全,增量备份及还原

1、备份过程

示例:新版xtrabackup完全,增量备份及还原

2、还原过程

示例: xtrabackup单表导出和导入


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...