Innodb_redo_log_capacity

Tuning innodb_redo_log_capacity variable
May 13, 2025 • Written by ROMAN AGABEKOV
innodb_redo_log_capacity controls InnoDB redo-log disk capacity in Oracle MySQL 8.0.30 and later. It is not the in-memory log buffer. The read-only checks below are for MySQL 8.4; do not apply this variable or workflow to MariaDB.

Check configured and current redo capacity

SELECT VERSION() AS server_version,
       @@version_comment AS vendor_build,
       @@GLOBAL.innodb_redo_log_capacity AS configured_capacity_bytes;

SHOW GLOBAL STATUS
WHERE Variable_name IN (
  'Innodb_redo_log_capacity_resized',
  'Innodb_redo_log_resize_status'
);
configured_capacity_bytes is the system-variable value. Innodb_redo_log_capacity_resized reports the current redo capacity limit; it is not the number of bytes of redo generated by your workload. Read Innodb_redo_log_resize_status alongside it.

The setting is dynamic. After a runtime change, adapting the redo files can take time; a changed variable value is not proof that the resize is complete. This check does not initiate a resize.

Check configuration precedence when values differ

MySQL can derive capacity from legacy redo settings when they are explicitly configured and innodb_redo_log_capacity is not. In that case, the unused new variable does not necessarily equal the applied capacity. If you have access to these Performance Schema tables, inspect the source of each value:
SELECT gv.VARIABLE_NAME,
       gv.VARIABLE_VALUE AS raw_value,
       vi.VARIABLE_SOURCE,
       vi.VARIABLE_PATH
FROM performance_schema.global_variables AS gv
JOIN performance_schema.variables_info AS vi USING (VARIABLE_NAME)
WHERE gv.VARIABLE_NAME IN (
  'innodb_redo_log_capacity', 'innodb_log_file_size',
  'innodb_log_files_in_group', 'innodb_dedicated_server'
);
Configuration paths can reveal local infrastructure details. Keep the output private or redact it before sharing. Access denied means that this check is unavailable to your account, not that the settings are absent.

Avoid legacy file-removal instructions

Modern MySQL stores redo files under #innodb_redo and manages their resizing. Do not delete or move redo files to adjust capacity, and do not disable redo logging on a production database. Older ib_logfile0/ib_logfile1 procedures are not a MySQL 8.4 resizing workflow.

A capacity snapshot alone does not establish redo pressure or a suitable target size. Review the workload, storage budget and recovery requirements with your DBA before changing a setting.

For the memory-side distinction, see innodb_log_buffer_size. For a broader review, see MySQL configuration tuning with Releem.

Sources