MySQL如何更改innodb-log-file-size

时间:2013-11-11 16:45:13

标签: mysql innodb

根据mysql文档(Docs),为了在步骤#4中更改innodb-log-file-size,我需要删除二进制日志。我对此有一些担忧和疑问。我对innodb-log-file-size的当前值是5MB。所以我假设我的二进制日志文件是每个5MB(最大)。当我查看bin-log目录时,我有一堆文件名,如'mysql-bin.000001','mysql-bin.000002'等。我相信这些是二进制日志文件,但它们都是相当的比特大于5MB。有2个文件(ib_logfile0,ib_logfile1)为5 MB。所以我的问题是

  1. 其中哪些文件是我的'二进制日志'?
  2. 我需要删除哪些内容?
  3. 提前致谢

2 个答案:

答案 0 :(得分:11)

InnoDB日志位于ib_logfile0和ib_logfile1中。这些文件的大小为innodb_log_file_size

要调整InnoDB日志的大小,首先需要干净地关闭mysqld 。这将确保日志中的任何更改都已刷新到您的表空间中。干净关闭非常重要,因为如果您不执行此步骤,则很有可能丢失数据。

在你彻底关闭mysqld后,ib_logfiles是多余的。你必须rm他们改变他们的大小。

当您重新启动mysqld时,InnoDB会注意到文件丢失,并根据my.cnf文件中的innodb_log_file_size变量以新大小创建新文件。因此,请确保在重新启动之前编辑该文件,否则它只会创建新的5MB文件。

MySQL 5.6使这个过程更简单一些。您不需要rm日志文件,但您需要重新启动mysqld以使新的日志文件大小生效。它在5.6中的工作方式是,如果这些文件的大小与config变量不同,MySQL会自动执行另一次干净重启(以确保文件不包含任何未刷新的更改),然后InnoDB调整大小最终启动时的文件。

其他文件(mysql-bin.000001等)是二进制日志。这些可能会增长到max_binlog_size(默认为1GB),但二进制日志的大小不同,因为每当您重新启动mysqld或执行FLUSH LOGS时都会创建新日志。无论如何,它们与InnoDB日志无关。

PS:你可能会喜欢这篇文章:How to calculate a good InnoDB log file size

答案 1 :(得分:0)

根据官方文档,它适用于 MySQL 5.7.30 要更改 InnoDB 重做日志文件的数量或大小,请执行以下步骤:

  • 停止 MySQL 服务器并确保它无误地关闭。
  • 编辑 my.cnf 以更改日志文件配置。要更改日志文件大小,请配置 innodb_log_file_size。要增加日志文件的数量,请配置 innodb_log_files_in_group。
  • 再次启动 MySQL 服务器。
  • 如果 InnoDB 检测到 innodb_log_file_size 与重做日志文件大小不同,它会写入一个日志检查点,关闭并删除旧的日志文件,以请求的大小创建新的日志文件,并打开新的日志文件。