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

概述

今天主要介绍一下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%';

c4557a534c533d9c5468e7b211f9bc58.png

2、编辑my.cnf

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

f9b61291bb157bc3e22b4a7ad6eb541e.png

3、重启数据库

#service mysqld restart

5e5a98da17d0ff81fb99ee2d1cbe51d9.png

4、观察mysql日志

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

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

ab73827567f5a5308af587c495e49f2c.png

这个参数对于数据库优化还是占一定比重的,建议衡量后可以设置下。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

deaa00aaf488b33dd1908d0fa9b8e386.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值