解决errCode = 2, detailMessage = Table[xx]‘s state is not NORMAL. Do not allow doing ALTER报错

test_table正处于 “后台作业执行中” 状态(不是 NORMAL),所以 FE 拒绝新的 ALTER TABLE / CREATE MATERIALIZED VIEWDDL
要继续操作,必须先让表回到 NORMAL。请按下面步骤排查并处理。

1、找出到底在跑什么任务

-- 列变更(ADD / DROP COLUMN、修改键等)
SHOW ALTER TABLE COLUMN WHERE TableName = 'test_table';

-- Rollup / 物化视图构建
SHOW ALTER TABLE ROLLUP WHERE TableName = 'test_table';

-- 物化视图刷新进度(仅 SelectDB ≥3.0 / Doris ≥2.0)
SHOW MATERIALIZED VIEW FROM test_table;

-- 副本修复 / 版本缺失
SHOW REPLICA STATUS WHERE TableName = 'test_table';

字段 典型取值 含义
State / Status RUNNING / PENDING 正在执行
FINISHED 已完成
CANCELLED / FAILED 已终止(但表可能仍非 NORMAL)
Progress 0–100 % 进度;长时间不动=卡住
Msg / Reason 失败原因、阻塞节点

2、决定“等待”还是“取消”

判断 推荐操作
进度在增长 说明作业正常,耐心等它完成;完成后表会自动变 NORMAL
长时间 0 % 或卡在某 Tablet 作业可能死锁/磁盘坏;可选择 “取消”

3、若需取消卡死任务

-- 取消列变更
CANCEL ALTER TABLE COLUMN FROM db_name test_table WHERE JobId = <JobId>;

-- 取消 Rollup / MV 构建
CANCEL ALTER TABLE ROLLUP FROM db_name test_table WHERE JobId = <JobId>;- doris数仓
CANCEL ALTER TABLE COLUMN FROM composition_data (652010151977);

CANCEL ALTER TABLE ROLLUP FROM composition_data (652010151977);

取消后 FE 会回滚元数据(几秒到几分钟),
再次 SHOW TABLES LIKE ‘test_table’;,应显示 State: NORMAL

4、表恢复 NORMAL 后再执行你的 DDL

-- 例:重新建物化视图
CREATE MATERIALIZED VIEW mv_sec_latest AS
SELECT ... ;

你可能感兴趣的:(报错解决,doris,数据库)