0

我有一个在 Centos 6 上运行的 MySQL 5.7。我启用了二进制日志,并且没有在我的配置文件中为二进制日志的最大大小提供任何自定义值。默认情况下,参数max_binlog_size = 1073741824相当于 1GB。这意味着,一旦二进制日志达到 1GB 的大小,就应该创建一个新文件。

我在我的服务器中观察到所有二进制日志文件的大小都不同,并且有很多对比,如 200GB、165GB、4GB 等......

当二进制日志文件的最大大小为 1GB 时,为什么会发生这种情况?是否有必要在配置文件中明确提及默认的最大大小?

4

1 回答 1

0

如果写入二进制日志导致当前日志文件大小超过此变量的值,则服务器轮换二进制日志(关闭当前文件并打开下一个文件)。最小值为 4096 字节。最大值和默认值为 1GB。

事务以一个块的形式写入二进制日志,因此永远不会在多个二进制日志之间拆分。因此,如果您有大事务,您可能会看到大于 max_binlog_size 的二进制日志文件。

如果 max_relay_log_size 为 0,则 max_binlog_size 的值也适用于中继日志。

https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html

于 2020-05-21T05:37:46.413 回答