Documentation Home

14.6.6 重做日志

重做日志是一种基于磁盘的数据结构,在崩溃恢复期间使用它来纠正由不完整的事务写入的数据。在正常操作期间,重做日志对 SQL 语句或低级 API 调用产生的更改表数据的请求进行编码。在意外关闭之前未完成更新数据文件的修改将在初始化期间和接受连接之前自动重播。有关重做日志在崩溃恢复中的作用的信息,请参阅 第 14.19.2 节,“InnoDB 恢复”

默认情况下,重做日志在磁盘上由两个名为ib_logfile0和 的文件物理表示ib_logfile1。MySQL 以循环方式写入重做日志文件。重做日志中的数据根据​​受影响的记录进行编码;这些数据统称为重做。通过重做日志的数据通道由不断增加的LSN值表示。

与重做日志相关的信息和过程在本节的以下主题下进行了描述:

更改 InnoDB 重做日志文件的数量或大小

要更改 InnoDB 重做日志文件的数量或大小,请执行以下步骤:

  1. 停止 MySQL 服务器并确保它在没有错误的情况下关闭。

  2. 编辑my.cnf以更改日志文件配置。要更改日志文件大小,请配置 innodb_log_file_size. 要增加日志文件的数量,请配置 innodb_log_files_in_group.

  3. 再次启动 MySQL 服务器。

如果InnoDB检测到 innodb_log_file_size重做日志文件大小不同,它会写入一个日志检查点,关闭并删除旧日志文件,以请求的大小创建新日志文件,然后打开新日志文件。