代码改变世界

【MySQL】MySQL估算redo日志的容量

  abce  阅读(372)  评论(0编辑  收藏  举报

在MySQL8.0.30之前

1
2
3
4
5
6
7
8
9
10
mysql> pager grep sequence
PAGER set to 'grep sequence'
mysql> show engine innodb statusG select sleep(60); show engine innodb statusG
Log sequence number 84 3836410803
1 row in set (0.06 sec)
 
1 row in set (1 min 0.00 sec)
 
Log sequence number 84 3838334638
1 row in set (0.05 sec)

根据上面的结果进行估算:

1
2
3
4
5
6
mysql> select (3838334638 - 3836410803) / 1024 / 1024 as MB_per_min;
+------------+
| MB_per_min |
+------------+
| 1.83471203 |
+------------+

大概是1.8MB/min,根据该结果,最好是将redo日志容量设置成1.8*60(1小时),即110MB,取128MB。因为有两个redo日志文件,每个64MB即可:

1
innodb_log_file_size=64M

从MySQL5开始,也可以使用全局状态参数:

1
SHOW GLOBAL STATUS Innodb_os_log_written;

 

从MySQL8.0.30开始

1
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_current_lsn'; SELECT SLEEP(60); SHOW GLOBAL STATUS LIKE 'Innodb_redo_log_current_lsn';

根据上面的执行结果进行估算:

1
2
3
4
5
6
7
mysql > SELECT ABS(20641693317 - 20903377487) / 1024 / 1024 AS MB_per_min;
+--------------+
| MB_per_min   |
+--------------+
| 249.56147194 |
+--------------+
1 row in set (0.00 sec)

大概是250MB/min,根据该结果,最好是将redo日志容量设置成250*60(1小时),即15GB。

1
mysql> SET GLOBAL innodb_redo_log_capacity = 15*1024*1024*1024;

  

 

 

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-08-13 PostgreSQL中的索引(十)--Bloom
2019-08-13 PostgreSQL体系架构与内存结构
2018-08-13 mysql出现unblock with 'mysqladmin flush-hosts'
2015-08-13 iptalbes -F
2015-08-13 服务器IP地址后修改SQL Server配置
2015-08-13 配置SELINUX
2015-08-13 11G新特性 -- 分区表和增量统计信息
点击右上角即可分享
微信分享提示