首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL 8.0.30+:redo_log_capacity对log_file_size?

MySQL 8.0.30+:redo_log_capacity对log_file_size?
EN

Database Administration用户
提问于 2023-02-17 15:51:36
回答 1查看 270关注 0票数 2

干杯。在将IO负载从MySQL 5.7切换到8.0.30之后,我们正在试图查找IO负载显著增加的原因,我们注意到的一个问题与文档的这一部分有关:

innodb_redo_log_capacity变量取代不推荐的innodb_log_files_in_group和innodb_log_file_size变量。定义innodb_redo_log_capacity设置时,将忽略innodb_log_files_in_group和innodb_log_file_size设置;否则,这些设置将用于计算innodb_redo_log_capacity设置(innodb_log_files_in_group * innodb_log_file_size = innodb_redo_log_capacity)。如果没有设置这些变量,则重做日志容量设置为innodb_redo_log_capacity默认值,为104857600字节(100 to )。最大重做日志容量为128 is。

我们过去常常将innodb_log_file_size设置为4G或类似的,并在ini文件中保留未定义的innodb_log_files_in_group,依赖内置的缺省值2。使用MySQL 5.7,产生了两个4 GiB大小的日志文件,总容量为8 GiB。

在MySQL 8下,由文档描述的遗留变量的计算不起作用--即使当我显式地设置组中的var文件时,重做日志容量总是设置为100 MiB (如SHOW VARIABLES ...查询所示)。这与重做日志文件夹的大小(在OS中观察到)完全匹配。(不,在ini文件的其他地方没有设置innodb_redo_log_capacity。)只有在我设置了新变量之后,ini文件中的innodb_redo_log_cpaacity才是正在运行的服务器全局变量中的新值集。

我是不是漏掉了什么,还是这个坏了?

FWIW,我在windows服务器2019,但ini文件是unix格式的.服务器正确读取ini文件中为遗留变量定义的值(使用非默认值进行测试)。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2023-02-17 17:56:08

这是故意的。旧变量在MySQL 8.0.30中被忽略。

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_诺姆b_日志_文件_大小

innodb_log_file_sizeinnodb_log_files_in_group在MySQL 8.0.30中被否决。这些变量被innodb_redo_log_capacity取代。

详细描述新的InnoDB日志体系结构的博客说:

https://blogs.oracle.com/post/dynamic-innodb-redo-log-in-mysql-80

这意味着,如果要增加或缩小MySQL重做日志文件的大小,现在不需要重新启动InnoDB。事实上,我们不再谈论文件大小,而是谈论容量!DBA不再需要为重做日志指定任何文件大小和/或文件数量,就像以前的情况一样。

(强调地雷)

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/323712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档