动态重做日志大小这篇文章将讨论最新的特性在MySQL 8.0.30:动态重做日志大小。InnoDB缓冲池大小后,我们可以说,有一个适当大小的重做日志对MySQL的性能是至关重要的。有许多博客如何计算一个优秀的重做日志大小。我们的一个典型的博客从男爵是这个:如何计算一个好的InnoDB日志文件大小(博客自2008年,仍然是一个有效的公式使用。)

现在,问题是这个特性试图解决?

在MySQL、缓冲池和重做日志大小设置不经常变化。通常,这些设置将在数据库安装;之后,他们被遗忘,直到出现了一个问题。问题是他们曾经是静态的,这意味着你必须重新启动MySQL可能的更改生效。

MySQL的缓冲池问题解决动态调整在MySQL 5.7。现在,MySQL 8.0.30解决重做日志的问题。调整简单明了:

此设置工作调整到更高和更低的价值比目前的定义。做这项工作,现在重做日志文件驻留在一个新目录内datadir命名# innodb_redo除非另一个指定的目录innodb_log_group_home_dir变量。有两种类型的重做日志文件,普通和备用。普通的重做日志文件是那些被使用。多余的重做日志文件是那些等待被使用。InnoDB数目保持在32个重做日志文件,每个文件大小等于1/32 * innodb_redo_log_capacity;然而,文件大小可能不同修改后一段时间innodb_redo_log_capacity设置

使用一个重做日志文件# ib_redoN命名约定,其中N是重做日志文件数。用一个备用的重做日志文件_tmp后缀。下面的示例显示了在一个重做日志文件# innodb_redo目录,18个活跃的重做日志文件和14个多余的重做日志文件按顺序编号。

几个状态变量监测提供重做日志和重做日志调整操作能力;raybet雷竞技竞猜在线官网例如,您可以查询Innodb_redo_log_resize_status查看的状态调整操作:

Innodb_redo_log_capacity_resized状态变量显示当前重做日志容量限制:

其他状态变量包括:

MySQL 8.0.30还介绍了一些新的错误消息与这个问题有关。提到几个:

如果你想查看更多,你可以使用这个链接。所有重做日志错误消息使用ER_IB_MSG_LOG_WRITER_命名约定。

估计的重做日志的能力

有了这些新的状态变量,我们可以估计的重做日志大小使用以下查询:

和前面的查询提供的输出,我们运行以下:

所以,在这种情况下,写在~ 250 m / min重做日志文件,一个好的价值将250 * 60(1小时),相当于15 gb。

弃用参数

做这项工作,MySQL弃用两个参数:innodb_log_files_in_groupinnodb_log_file_size

如果你想设置的my.cnf文件,他们将被忽略,警告将打印错误日志:

结论

动态重做日志大小带来了更大的灵活性,DBA以防他需要调整,并为MySQL重启应用程序不能停止。写这篇文章的时候,没有相关的bug报告这个特性。一条建议是检查如果你备份工具兼容MySQL 8.0.30及其新功能。最后,一定要检查你的存在my.cnf由于弃用参数。

有用的资源

你可以达到我们通过社交网络,我们的论坛,或访问我们的材料使用下面的链接:

订阅
通知的
客人

3评论
最古老的
最新的 大多数投票
内联反馈
查看所有评论
画


我们应该把“的数量相当于15 gb”博客的日志文件成员从2008年?

维尼Grippa

你好,

不,没有必要,因为新的重做日志大小,MySQL自动管理底层的文件。例如,如果计算的理想重做大小,发现它是10 gb。

你需要运行以下:
mysql >集全球innodb_redo_log_capacity = 10 * 1024 * 1024 * 1024;

让我知道如果有帮助!

编辑7个月前由维尼Grippa