MySQL 8.0.30 之后如何更改 REDO 日志文件大小
最新版本 MySQL 8.0.30 发布后,使用新参数innodb_redo_log_capacity来代替之前的两个参数(目前设置这两个参数依然有效)。使用新参数调整大小非常简单,直接设置为要调整的值就行。比如调整其大小为2G:
1、调整之前,默认100M:
<mysql:(none):8.0.30>select @@innodb_redo_log_capacity;
+----------------------------+
| @@innodb_redo_log_capacity |
+----------------------------+
| 104857600 |
+----------------------------+
1 row in set (0.00 sec)
2、调整其大小为2G:
<mysql:(none):8.0.30>set persist innodb_redo_log_capacity=2*1024*1024*1024;
3、新增对应的状态变量innodb_redo_log_capacity_resized,方便在 MySQL 侧监控当前 REDO 日志文件大小:
<mysql:(none):8.0.30>show status like 'innodb_redo_log_capacity_resized';
+----------------------------------+------------+
| Variable_name | Value |
+----------------------------------+------------+
| Innodb_redo_log_capacity_resized | 2147483648 |
+----------------------------------+------------+
1 row in set (0.00 sec)
3、同时磁盘文件的存储形式。不再是类似 ib_logfileN 这样的文件,而是替代为 #ib_redoN 这样新文件形式。这些新的文件默认存储在数据目录下的子目录'#innodb_redo' 里。
3.1、这样的文件一共有32个,按照参数 innodb_redo_log_capacity 来平均分配。
3.2、有两类文件:一类是不带 _tmp 后缀的,代表正在使用的日志文件;带 _tmp 后缀的代表多余的日志文件,等正在使用的文件写满后,再接着使用它。
4、同时 performance_schema 库里新增表innodb_redo_log_files:获取当前使用的 REDO 日志文件 LSN 区间、实际写入大小、是否已满等统计数据。例如当前15个 REDO 日志文件的统计数据如下:一目了然!
<mysql:performance_schema:8.0.30>select * from innodb_redo_log_files;
+---------+---------------------------+------------+------------+---------------+---------+----------------+
| FILE_ID | FILE_NAME | START_LSN | END_LSN | SIZE_IN_BYTES | IS_FULL | CONSUMER_LEVEL |
+---------+---------------------------+------------+------------+---------------+---------+----------------+
| 7 | ./#innodb_redo/#ib_redo7 | 552208896 | 619315712 | 67108864 | 1 | 0 |
...
| 21 | ./#innodb_redo/#ib_redo21 | 1491704320 | 1558811136 | 67108864 | 0 | 0 |
+---------+---------------------------+------------+------------+---------------+---------+----------------+
15 rows in set (0.00 sec)
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作