在 OceanBase V4 版本,执行大 DDL 变更(alter table add column),默认采用什么变更模式?()
A. 原地 DDL
B. Online DDL(副本异步重建)
C. 直接锁表 DDL
D. 拷贝全表数据的 pt‑online‑schema‑change
正确答案:A
A. 原地 DDL —
正确
OceanBase V4 对 ALTER TABLE ADD COLUMN (末尾追加列)这类不涉及数据重写的 DDL 操作,默认采用原地 DDL(In-place DDL) 模式。该操作只需修改表的元数据(schema 信息),无需拷贝或重写全表数据,因此执行速度非常快,对业务影响极小。
B. Online DDL(副本异步重建) — 错误
Online DDL(副本异步重建)是 OceanBase 针对需要重写数据的 DDL(如修改列类型、删除列等)所采用的策略,并非 ADD COLUMN 的默认模式。
C. 直接锁表 DDL — 错误
直接锁表是传统数据库的做法,OceanBase V4 默认不会采用这种方式。OceanBase 的 DDL 设计目标之一就是尽量减少对在线业务的阻塞。
D. 拷贝全表数据的 pt-online-schema-change — 错误
pt-online-schema-change 是 Percona 为 MySQL 提供的第三方工具,并非 OceanBase 的原生机制。虽然 OceanBase 的 ODC 工具提供了类似的"无锁结构变更"功能(原理类似:创建临时表→全量拷贝→增量同步→切换),但这是 ODC 的附加功能,需要额外配置 OMS,并非数据库引擎的默认行为。