无锁结构变更 -- offline DDL 转online DDL

执行一个DDL语句,如:ALTER TABLE test1 PARTITION BY KEY(uuid) PARTITIONS 10;
再执行一个update语句:update test1 set uuid = ‘aaa’ where id = 888;
此时update语句被阻塞。
有没有类似MySQL的percona-toolkit工具,可以进行在线DDL的。

在线修改分区可以参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221389#6-title-分区操作
目前ALTER xxx PARTITION BY 语句是离线的。

在线DDL一般直接执行sql命令就行,没有专门的工具哈。
ob支持的在线DDL和离线DDL列表(mysql):https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000252799

我要把一个普通表修改为分区表的话,这个是不支持ONLINE ddl的,只能锁表进行了吧。

是的。分区是一个复杂的操作,涉及底层数据和元数据的修改,是不支持ONLINE ddl的。

3.x版本好像没有这样的对比文档。。?是不是所有的DDL操作在3.x都不会有锁?

odc 支持影子表的方式来将offline ddl 变成online ddl, 稍等, 会给你发一个帮助文档

https://www.oceanbase.com/docs/common-odc-1000000000316142
这有个无锁结构变更安装和使用文档

这个使用起来好复杂,有计划支持为类似pt-osc这种命令行工具这种方式吗?或者直接在ob实现为online DDL?