云数据库 MySQL 使用 Instant add column 添加超过第1024个列后 crash

使用 Instant add column 添加超过第1024个列后 crash。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、问题触发场景

MySQL 8.0 20221221及以前的版本,即使在行大小超过页面一半时也允许执行 Instant add column,在进行内核版本升级后,rollback 发生时可能导致行大小超出限制,导致 rollback 失败。

二、涉及问题的内核版本

MySQL 8.0 20221221及以前的版本。

三、修复的内核版本

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 等工具在业务低峰期进行修复。

赞 (0)
上一篇 4天前
下一篇 4天前