MySQL日志系统:redolog、binlog、undolog 区别与作用

mysql cooljun 851℃ 0评论

redolog:是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(media failure)时,redo log文件就能派上用场,如数据库掉电,InnoDB存储引擎会使用redo log恢复到掉电前的时刻,以此来保证数据的完整性。
undolog: 和redolog一样也是事务日志,undolog是用来提供回滚操作,redolog提供前滚操作,用来回滚记录到某个版本。可以实现事务的mvcc操作
binglog:是属于MySQL Server层面的,又称为归档日志,属于逻辑日志,是以二进制的形式记录的是这个语句的原始逻辑,binlog是没有crash-safe能力的

一、重做日志(redo log)
作用:
确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。
二、回滚日志(undo log)
作用:
保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读
三、二进制日志(binlog):

作用:
用于复制,在主从复制中,从库利用主库上的binlog进行重播,实现主从同步。
用于数据库的基于时间点的还原。

转载请注明:cooljun小窝 » MySQL日志系统:redolog、binlog、undolog 区别与作用

如果你觉得这篇文章对你有帮助,请支持我继续更新网站 !捐赠本站
喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!