<返回更多

超详细的mysql数据库修改InnoDB redo log日志大小教程

2019-07-16    
加入收藏

概述

今天主要介绍一下MySQL数据库一般修改InnoDB redo log事务日志文件大小的步骤,然后用一个实验来演示一下,下面一起来看看吧~


基本步骤

在MySQL 5.5版本里,如果想修改ib_logfile(redo log)文件大小,那么步骤如下:

1)执行set global innodb_fast_shutdown = 0;命令,将所有的脏页刷到磁盘。

2)执行mysqladmin shutdown命令关闭数据库。

3)在my.cnf文件里修改innodb_log_file_size参数值。

4)执行mv ib_logfile* /bak命令,将redo log移动到/bak目录下(不移走,启动会报错)。

5)执行mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &命令,最后启动MySQL服务。

通过上面的步骤可完成修改redo log文件的大小。

在MySQL 5.6/5.7或MariaDB 10.0/10.1版本里更人性化,上面的第4)步可以忽略,直接启动MySQL即可。

在MySQL 5.6/5.7或MariaDB 10.0/10.1版本里,InnoDB redo log的大小从最大4GB提高到512GB,可通过参数innodb_log_file_size来配置。

如果innodb_log_files_in_group设置为3组redo log,那么innodb_log_file_size * innodb_log_files_in_group不能超过512GB。设置的值越大,越可以减少checkpoint刷新脏页的频率,这对提升MySQL性能很重要,但风险就是增加了宕机恢复的时间。这里建议TPS在200~300每秒/写的业务场景,通常设置为4GB即可。


实验演示(基于mysql5.7)

1、当前innodb_log大小

mysql> show variables like 'innodb_log_file%';
超详细的mysql数据库修改InnoDB redo log日志大小教程

 

2、编辑my.cnf

要更改日志文件大小,需配置 innodb_log_file_size。要增加日志文件的数量,需进行配置 innodb_log_files_in_group。

超详细的mysql数据库修改InnoDB redo log日志大小教程

 

3、重启数据库

#service mysqld restart
超详细的mysql数据库修改InnoDB redo log日志大小教程

 

4、观察mysql日志

如果InnoDB检测到 innodb_log_file_size与重做日志文件大小不同,则会写入日志检查点,关闭并删除旧的日志文件,以请求的大小创建新的日志文件,并打开新的日志文件。

innodb日志文件通常命名为ib_logfile0,ib_logfile1,ib_logifleN,其中N小于select @@global.innodb_log_files_in_group返回的数字;

超详细的mysql数据库修改InnoDB redo log日志大小教程
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>