文档中心>云数据库 MySQL>自研内核>内核问题检查与修复>对表相继执行 Instant add column 与 Online DDL 引发 crash

对表相继执行 Instant add column 与 Online DDL 引发 crash

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

我的收藏

问题

对表相继执行 Instant add column 与 Online DDL 引发 crash。

问题触发场景

对一个表执行 Instant DDL,紧接着对该表执行 Online DDL 操作,例如:OPTIMIZE TABLE 或 ALTER TABLE .. ADD PRIMARY KEY 等,在此过程中,由于代码未正确处理(未即时添加列或 REDUNDANT 格式),可能导致程序 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 等工具在业务低峰期进行修复。