mysql数据库undo日志恢复_MySQL的undo/redo日志和binlog日志,以及2PC

发现自己的知识点有点散,今天就把它们连接起来,好好总结一下。

一、undo log、redo log、binlog的定义和对比

定义和作用

所在架构层级

日志形式

所在文件和默认名称,组织结构

是否缓存,如何缓存

写文件方式

undo log

回滚日志,在事务执行的过程中操作任何数据之前先将数据备份到undolog中。

事务失败时可根据undo log进行回滚。

用来保证事务的一致性。

还可以用来实现多版本并发控制MVCC。

InnoDB引擎层

逻辑日志,以行的形式进行记录。

共享表空间文件,ibdata0/ibdata1。

undo只是该文件的的一部分(rollback segment),文件由页组成,每一页又由一行行的数据组成,undo相对有自己的固定页,会循环覆盖。

Rollback segment,一共有128个,分别从resg slot0 - resg slot127,每一个resg slot,也就是每一个回滚段,内部由1024个undo segment组成。

是,innodb_buffer_pool缓冲池中有undo页

尽量顺序写。

回滚,实际做的是与之前相反的工作,比如INSERT需要的是DELETE,而DELETE需要的是INSERT。

执行相反的UPDATE,将修改前的行放回去。

回滚操作写入磁盘时为随机写。

redo log

重做日志,在事务执行的过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值