开发者社区> 派大星110> 正文

innodb_log_file_size

简介: 如何修改 5.7 Stop the MySQL server and make sure that it shuts down without errors. Edit my.cnf to change the log file configuration.
+关注继续查看

如何修改 5.7

  • Stop the MySQL server and make sure that it shuts down without errors.
  • Edit my.cnf to change the log file configuration. To change the log file size, configure innodb_log_file_size. To increase the number of log files, configure innodb_log_files_in_group.
  • Start the MySQL server again.

If InnoDB detects that the innodb_log_file_size differs from the redo log file size, it writes a log checkpoint, closes and removes the old log files, creates new log files at the requested size, and opens the new log file.

上面这段话取自mysql5.7官方手册。

  • 确保干净的关闭数据库
  • 修改my.cnf 文件innodb_log_file_size,innodb_log_files_in_group
  • 启动数据库

调整redo log 大小官方 guidelines

  • Make your redo log files big, even as big as the buffer pool. When InnoDB has written the redo log files full, it must write the modified contents of the buffer pool to disk in a checkpoint. Small redo log files cause many unnecessary disk writes. Although historically big redo log files caused lengthy recovery times, recovery is now much faster and you can confidently use large redo log files.
  • Consider increasing the size of the log buffer. A large log buffer enables large transactions to run without a need to write the log to disk before the transactions commit. Thus, if you have transactions that update, insert, or delete many rows, making the log buffer larger saves disk I/O. Log buffer size is configured using the innodb_log_buffer_size configuration option.

这是官方给出的两条guidelines,大意是redo log越大越好,甚至可以配置到和buffer pool一样的大小。过小的redo log会带来许多不必要磁盘写入。事实上来看,确实redo log files大有许多的好处,带来的坏处就是系统一旦崩溃,恢复的时间比较长。同时考虑调整innodb_log_buffer_size参数来支持处理大事物的能力。

官方的说法比较模糊,现实中也不可能调整redo log files至 buff pool的大小,我们实际上需要更为精确的计算方法。

具体的计算方法

选取业务高峰期计算产生的日志大小,redo log 的大小最少应该承载一个小时的业务日志。

计算lsn( log sequence number)

mysql> pager grep sequence;
PAGER set to 'grep sequence'
mysql> show engine innodb status\G select sleep(60); show engine innodb status\G;
Log sequence number 2133421300
1 row in set (0.00 sec)

1 row in set (1 min 0.00 sec)

Log sequence number 2160035601
1 row in set (0.00 sec)

mysql> select (2160035601-2133421300)/1024/1024 as MB_per_min;
+-------------+
| MB_per_min  |
+-------------+
| 25.38137531 |
+-------------+
1 row in set (0.00 sec)

一个小时的日志量是1500M,默认innodb_log_files_in_group =2,则一个innodb_log_file_size =750M。我们一般取2的整数倍,所以
innodb_log_files_in_group =2
innodb_log_file_size =1024M

对于写入很频繁的数据库,设置比较大redo log file 是一个比较明智的措施。

网上有很多说法可以去计算 Innodb_os_log_written( Innodb_os_log_written is the number of bytes written to the redo logs)的大小,实际上 Innodb_os_log_written一般都是lsn的几倍,建议还是使用lsn计算,具体信息可以参考链接:
link

有个有趣的现象innodb_buffer_pool_instances这个值比较大时,实际上会产生比较多的log,这时可以调高logsize大小。
image

参考链接:
link

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
20996 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
30386 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
17476 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
21337 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14929 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23639 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22507 0
+关注
12
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载