MYSQL8 备份原理

1 首先记录开始的LSN(全备的话就是从0开始,增备的话从指定路径,或者从表中获取)并启动一个xtrabackup_log后台检测的 fork进程,实时检测mysql redo的变化,一旦发现redo有新的日志写入,立刻将日志写入到日志文件xtrabackup_log中,所以还原的时候为什么需要prepare就是这个原因,数据是非一致性的,还有部分在xtrabackup_log中。

2 复制innodb的数据文件和系统表空间文件idbdata1到对应的以默认时间戳为备份目录的地方(流式备份就没有这个目录咯,流式备份节约磁盘,边备份,边压缩)

3 复制结束后,执行flush table with read lock操作(5.7以及之前,数据库大杀器这个锁) 8.0使用备份锁,所以percona工具xtrabackup8.0只能备份mysql8.0

4 复制.frm .myd .myi文件

5 并且在这一时刻获得binary log 的位置

6 将表进行解锁unlock tables (8.0 使用 UNLOCK INSTANCE)

7 停止xtrabackup_log进程

 

为了获取非innodb表的一致性

5.7 使用 全局事务读 FTWRL (释放 unlock tables)

8.0 使用   FLUSH TABLES WITH READ LOCK LOCK INSTANCE FOR BACKUP 备份锁  (释放 UNLOCK INSTANCE。或者关闭会话)

 

相关文档:

percona 官网说明: https://www.percona.com/doc/percona-xtrabackup/8.0/how_xtrabackup_works.html     xtr8 工作原理

 

mysql8.0  官网说明: https://dev.mysql.com/doc/refman/8.0/en/lock-instance-for-backup.html         备份锁讲解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值