redolog日志与binlog日志

1、redoLog

redo Log又成重做日志,redo log 是物理日志,记录的是在某个数据页上做了什么修改,不记录更新后的状态。

1.1 工作层

InnoDB引擎层特有

1.2 记录机制

1.2.1 作用:

一般来说这个日志是InnoDB引擎来做的,先把需要更新的放置在redoLog中,并更新内存。InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做,减少对磁盘的I/O操作。

1.2.2 存储:

  • redoLog的空间大小是有限的,一般分为四个空间: write

  • pos是当前记录的位置,一边写一边后移,checkpoint是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。

  • 也就是说绿色是当前空闲的存储空间可以用来写日志。

1.2.3 日志作用

主要就是在系统宕机的时候用来恢复到宕机前的数据的。只能恢复到最后一次提交的记录。也就是说的crash-safe能力。

2、binLog

binLog日志是归档日志,逻辑日志。以二进制的形式记录语句的原始逻辑。
有两种模式,statement 格式的话是记 sql 语句,row 格式会记录行的内容,记两条,更新前和更新后都有。

2.1 工作层

在server层实现,任何引擎都可以实现。

2.2 记录机制

binlog记录了对MySQL数据库执行更改的所有操作,但是不包括SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。然后,若操作本身并没有导致数据库发生变化,那么该操作也会写入二进制日志。

2.3 日志作用

主要就是在系统宕机的时候用来恢复到宕机前的数据的。只能恢复到最后一次提交的记录。也就是说的crash-safe能力。
可以用来做数据库备份等。在最近一次的全量备份上,使用binlog日志进行恢复到现在的数据库。

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/109251181
今日推荐