网站开发维护公司经营范围,wordpress前端投稿插件,东北大学秦皇岛吧,泉州企业网站开发一、redo Log 介绍
redo log 是一种偏向物理性质的重做日志#xff0c;因为他里面记录类似的这样的东西#xff0c;“对那个数据也中的什么记录#xff0c;做了个什么修改”。它是 InnoDB 存储引擎特有的东西。
二、bin Log 日志
bin log 叫做归档日志#xff0c;它里面…一、redo Log 介绍
redo log 是一种偏向物理性质的重做日志因为他里面记录类似的这样的东西“对那个数据也中的什么记录做了个什么修改”。它是 InnoDB 存储引擎特有的东西。
二、bin Log 日志
bin log 叫做归档日志它里面记录的是偏于逻辑性的日志 类似 对 users 表中的 id10 的一行数据做了更新操作更新以后的值是什么。它不是 InnoDB 存储引擎特有的日志文件属于 mysql server 日志文件。
当事务提交的时候redo log日志会写入磁盘文件中。其实在提交事务的时候我们同时还会把这次更新对应的binlog日志写入磁盘的文件中。 三、bin Log 的刷盘策略
通过 sync_binlog 参数可以设置刷盘策略。参数为 0默认值是 0当 binlog 写入磁盘的时候其实不是直接进入磁盘文件而是进入 os cache 内存缓存。但是如果此时服务器宕机存在os cache里的binlog日志是会丢失的。参数为 1 强制在提交事务的时候binlog直接写入磁盘文件中那么这样提交事务之后哪怕机器宕机磁盘上的binlog是不会丢失的。
四、基于 bin Log 和 redo Log 完成事务的提交 当我们把binlog写入磁盘文件后接着就会完成最终事务的提交此时会把本次更新对应的binlog文件名和这次binlog日志在文件里的位置都写入到redo log文件中同时在redo log日志文件里写入一个commit标记。在完成这件事情之后才算最终完成了事务的提交。写入commit标记的意义是保持redo log 和 binlog 日志保持一致的。
五、脏数据刷回磁盘 当上面的步骤执行完成之后最后会有一个线程去随机的把buffer pool的修改后的数据刷回到磁盘中。即使mysql服务宕机也没有关系因为所有修改后的数据都在redo log中了。