重做日志(redo log)用来保证事务的持久性。实际上它可以分为以下两种类型:物理Redo日志、逻辑Redo日志;在InnoDB存储引擎中,大部分情况下Redo是物理日志,记录的是数据页的物理变化。而逻辑Redo日志,不是记录页面的实际修改,而是记录修改页面的一类操作,比如新建数据页时,需要记录逻辑日志。只需要记住绝大数情况下,Redo是物理日志即可,DML对页的修改操作,均需要记录Redo。
redo log用于数据库的崩溃恢复。
MySQL的新版本8.0.17中开始支持redo log的archiving(归档功能);,解决了备份一致性的问题。就是备份速度跟不上redo log的生成速度,结果redo log被覆盖了,然后备份就无法保证数据的一致性,有了redo log的归档,就可以在备份启动时同步启动redo log归档,备份结束时同步停止归档,就可以避免这个问题,备份结束后可以利用这期间生成的redo log进行数据恢复。参数innodb_redo_log_archive_dirs,支持在线修改。