在线 DDL 执行过程中,以下描述正确的是?
A. 全程锁表,业务完全中断
B. 基本不影响正常业务读写
C. 必须先停止租户才能执行
D. 仅支持修改索引,无法修改字段
1 个赞
正确答案是 B. 基本不影响正常业务读写。
解析: 在 OceanBase 中,Online DDL(在线数据定义语言)的设计初衷就是为了在不中断业务的前提下完成表结构的变更。具体机制如下:
- 无锁或短时加锁:对于大多数 Online DDL 操作(如添加列、创建索引等),OceanBase 采用两阶段异步 DDL 机制。元数据更新通常在秒级完成并广播至所有副本,而底层的数据重构(如果需要的话)由后台线程逐步迁移,整个过程不阻塞前端的读写操作。
- 支持多种修改类型:Online DDL 不仅支持修改索引,也支持新增字段(ADD COLUMN)、重命名等多种轻量级变更操作。
- 无需停止租户:执行 DDL 操作完全不需要停止数据库或租户,可以平滑地在运行中的集群上执行。
因此,选项 A、C、D 的描述均是错误的,只有 B 准确描述了 Online DDL 的特性。