文档中心>云数据库 MySQL>自研内核>内核问题检查与修复>Instant drop 后 Instant add column 同名列引发 crash

Instant drop 后 Instant add column 同名列引发 crash

最近更新时间:2025-12-04 12:09:22

我的收藏

问题

执行 Instant drop 后执行 Instant add 同名列引发 crash。

问题触发场景

执行 Instant drop 后实际列并没有删除,而是重命名为一个隐藏列,如果再执行 Instant add column 添加一个和隐藏列同名的列,会导致元数据错乱,引发 crash。

涉及问题的内核版本

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