Xtrabackup (一)

本文相关的 xbk 详细日志可以在我的github下载

1. 原理

Xtrabackup 拷贝的数据文件是不一致的,基于 InnoDB 自带的 crash-recovery 机制,利用备份的 Redo Log 来完成 crash-recovery过程,保证数据一致性

2. 安装

  • xbk 安装很简单,直接在官网下载二进制包,并且添加到环境变量就可以了
  • 还需要安装 zstdgithub下载解压后 make && make install

2. 备份过程

2.1 参考命令

xtrabackup --defaults-file=/usr/local/mysql/etc/my.cnf --backup --compress --socket=/usr/local/mysql/data/mysql.sock --user='root' --password='root_123' --target-dir=/data/mydata > /tmp/xtra.log

2.2 过程

根据 Xtrabackup 的日志 以及 MySQL General Log 总结

  1. 执行 LOCK INSTANCE FOR BACKUP,记录起始 LSN (30910855),开始拷贝 Redo Log
  2. 备份 ibdata1InnoDB 表、undo 表空间
  3. 备份非 InnoDB 表及文件
  4. 执行 FLUSH NO_WRITE_TO_BINLOG BINARY LOGS,备份 binlogmysql-bin.index
  5. 执行 FLUSH NO_WRITE_TO_BINLOG BINARY LOGS,解析 redo log
  6. 执行 UNLOCK INSTANCE,备份 binlog 位点、GTIDib_buffer_poolmy.cnfxtrabackup_info,停止拷贝 Redo Log

3. 恢复过程

3.1 参考命令

xtrabackup --decompress --remove-original --target-dir=/data/mydata
xtrabackup --prepare --target-dir=/data/mydata
# 准备好配置文件
# 启动

3.2 过程

  1. 检测到系统表空间里的 LSNredo log 里的不一致,应用拷贝的记录
  2. 删除重建 redo log,记录 LSN
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值