我们在配置文件中配置了以下设置。
--innodb_file_per_table=1
--innodb_undo_tablespaces=3
--innodb_undo_directory=/var/lib/mysql/
--innodb_undo_log_truncate=ON
--innodb_max_undo_log_size=10737418240
但是,撤消日志文件的大小已达到 15GB 以上,并且不会按照设置的 10GB 大小进行截断。
无法重新启动或关闭服务器。 任何建议、需要更改或添加的内容将不胜感激。
我已启用可以解决问题的可能参数。我想在撤消日志达到 10GB 后将其截断
https://mariadb.com/kb/en/innodb-system-variables/#innodb_max_undo_log_size
innodb_max_undo_log_size
说明:如果undo表空间大于此值,如果设置了innodb_undo_log_truncate,则会将其标记为截断。
https://mariadb.com/kb/en/innodb-system-variables/#innodb_undo_log_truncate
innodb_undo_log_truncate
描述:启用后,大于 innodb_max_undo_log_size 的 innodb_undo_tablespace 将被标记为截断。另请参见 innodb_purge_rseg_truncate_Frequency。启用此设置可能会导致在繁重的写入工作负载期间停顿。
https://mariadb.com/kb/en/innodb-system-variables/#innodb_purge_rseg_truncate_Frequency
innodb_purge_rseg_truncate_Frequency
描述:清除撤消记录的频率。默认设置为每 128 次,减少此值会增加释放回滚段的频率。另请参见 innodb_undo_log_truncate。在 MySQL 中引入此功能的动机似乎是为了避免由于释放撤消日志页或截断撤消日志表空间而导致的停顿。在 MariaDB 中, innodb_undo_log_truncate=ON 应该是一个更轻量级的操作,因为它不会涉及任何日志检查点,因此从 MariaDB 10.6.16、MariaDB 10.10.7、MariaDB 10.11.6、MariaDB 11.0.4、MariaDB 11.1 开始已弃用并忽略此操作。 .3 和 MariaDB 11.2.2。 (MDEV-32050)
那么,其他设置的值是多少?