MySQL日志

MySQL日志

1.介绍

MySQL的日志分为三部分,分别是binlog,undolog,redolog。

2.binlog日志

binlog:
	二进制的全量日志,
	可以记录MySQL所有库的所有增伤改的操作,
	MySQL库级别,默认不开启,
	可以是追加写的方式,不会覆盖之前的日志信息。

3.undolog日志

undolog:
	innodb存储引擎级别日志,
	保证事务的原子性,
	用来实现多版本并发控制 MVCC,
	undolog是逻辑日志,
	意思是如果事务中有insert记录,则会在undolog中有个delete记录。以此来实现rollback。

4.redolog日志

redolog:
	innodb存储引擎级别日志,
	保证事务的持久性,
	redolog是在内存中,
	从Buffer Pool到Log Buffer再到OS Buffer,
	redolog是固定大小的,它是循环写的过程,空间会用完。

5.redolog的两阶段提交

1.由于redolog是在innodb中执行的,因此,任何事务都能被记录。
2.binlog是在执行器中执行,它是mysql都有的,任何操作都会被记录binlog。
如果1未执行完,2执行完了,此时处于prepare阶段。
如果1执行完了,2也执行完了,此时处于commit阶段。
如果执行器执行完了,但执行引擎未执行完。mysql crash了。则会在binlog中记录数据,但redolog中没有。此时数据会不一致。
如果执行引擎执行完了,但执行器未执行完。mysql crash了。则会在redolog中记录数据,但binlog中没有。此时数据会不一致。
也就是说,如果执行器或执行引擎中任何一个环节没有执行完,则数据都不完整。
prepare和commit都执行完了。保证数据的完整性,这就是两阶段提交。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值