tencent cloud

Instant change column redo 缓冲区计算缺陷引发 crash
最后更新时间:2025-12-04 15:36:59
Instant change column redo 缓冲区计算缺陷引发 crash
最后更新时间: 2025-12-04 15:36:59

问题

Instant change column redo 缓冲区计算缺陷引发 crash。

问题触发场景

日志索引大小的计算需要考虑列顺序的变化,也需要在 redo 日志中记录索引信息的大小,原来这些列没有被计入。在执行 ALTER TABLE 修改列顺序后,紧接着执行 UPDATE 操作时,由于 redo 日志空间计算错误导致的崩溃。

涉及问题的内核版本

MySQL 8.0 20230704及以前的版本。

修复的内核版本

MySQL 8.0 20241005。

检查方法

可参考如下命令筛查具有隐患的表。
select replace(name, '/', '.') as 'table_schema.table_name' from information_schema.innodb_tables where TOTAL_ROW_VERSIONS!=0 or INSTANT_COLS!=0;

修复方法

1. 将内核版本升级至 MySQL 8.0 20241005,操作方法请参考 升级内核小版本
2. 升级内核版本后,对已损坏的表进行重建修复,可以通过 alter table xx engine = innodb; 的方法进行修复。为了避免锁表导致的业务影响,建议通过 pt-osc 等工具在业务低峰期进行修复。
本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈