Confulence 提示InnoDB日志文件大小太小的警告,修改 innodb_log_file_size

Linux: Centos7.9

 

 

 

 

1.systemctl stop mariadb

2.转移logfile,(先转移到别的目录下备份,等后面重启mysql会自己重新生成)

cd /var/lib/mysql

mv ib_logfile* /mnt/backup_mysql

mv aria_log* /mnt/backup_mysql

3.vim /etc/my.cnf  增加 innodb_log_file_size=512M

 

 4.systemctl restart mariadb

 5.登录web检查

 

 

参考资料

1.了解innodb_log_file_size参数(本段引自博文:https://blog.csdn.net/kai404/article/details/80242262)

  MySQL的InnoDB 存储引擎使用一个指定大小的Redo log空间(一个环形的数据结构),Redo log的空间通过innodb_log_file_size和innodb_log_files_in_group(默认为2)参数来调节。将这俩参数相乘即可得到总的可用Redo log 空间。尽管技术上并不关心你是通过innodb_log_file_size还是innodb_log_files_in_group来调整Redo log空间,不过多数情况下还是通过innodb_log_file_size 来调节。

  为InnoDB引擎设置合适的Redo log空间对于写敏感的工作负载来说是非常重要的,然而,这项工作是要做出权衡的。配置的Redo空间越大,InnoDB就能更好的优化写操作;然而,增大Redo空间也意味着更长的恢复时间当出现崩溃或掉电等意外时。

  关于恢复时间,并不好预测对于一个指定的 innodb_log_file_size 值出现崩溃是需要多长的恢复时间–他取决于硬件能力、MySQL版本以及工作负载等因素。然而,一般情况下我们可以按照每1GB的Redo log的恢复时间大约在5分钟左右来估算。如果恢复时间对于你的使用环境来说很重要,我建议你做一些模拟测试,在正常工作负载下(预热完毕后)模拟系统崩溃,来评估更准确的恢复时间。

  虽然恢复时间可以作为一个限制innodb_log_file_size的参考因素,也还有一些别的方式可以观察该参数设置是否“合理”。

2.修改innodb_log_file_size参数

  MySQL变量分为全局系统变量和会话系统变量(全局系统变量影响服务器的全局操作,会话变量只影响具体客户端连接相关操作),innodb_log_file_size是全局系统变量,SET GLOBAL var_name语句可以动态更改部分全局变量的值,动态修改的参数在MySQL服务重启后会失效,只有写入配置文件才能够重启后仍有效。对于一些无法动态修改的参数,只能通过修改配置文件,然后重启来使之生效,比如innodb_log_file_size。

  这里为了跟项目对应的uat和生产环境innodb_log_file_size参数值一致,这里设置为1500M。

--修改前
mysql:[(none)] 15:56:32> show variables like 'innodb_log_file_size';
+----------------------+----------+
| Variable_name | Value |
+----------------------+----------+
| innodb_log_file_size | 50331648 |
+----------------------+----------+
1 row in set (0.00 sec)

mysql:[(none)] 15:56:32> select 50331648/1024/1024;
+--------------------+
| 50331648/1024/1024 |
+--------------------+
| 48.00000000 |
+--------------------+
1 row in set (0.00 sec)

--开始修改
[root@chengyu ~]# /etc/init.d/mysql stop
[root@chengyu ~]# mv /home/mysql/data/ib_logfile* /home/
[root@chengyu ~]# vim /etc/my.cnf
innodb_log_file_size=1500M
[root@chengyu ~]# /etc/init.d/mysql start

--修改后
mysql:[(none)] 15:56:32> show variables like 'innodb_log_file_size';
+----------------------+------------+
| Variable_name | Value |
+----------------------+------------+
| innodb_log_file_size | 1572864000 |
+----------------------+------------+
1 row in set (0.00 sec)

mysql:[(none)] 15:56:32> select 1572864000/1024/1024;
+----------------------+
| 1572864000/1024/1024 |
+----------------------+
| 1500.00000000 |
+----------------------+
1 row in set (0.00 sec)

测试环境innodb_log_file_size参数值修改完毕

posted @ 2021-09-08 19:20  希曼博客  阅读(627)  评论(0编辑  收藏  举报