本文介绍PolarDB-X 2.0的DDL异步执行语法扩展。
背景
之前PolarDB-X 2.0的DDL异步执行只能通过HINT
控制,例如:/*+TDDL:cmd_extra(PURE_ASYNC_DDL_MODE = true)*/
,这种方式存在两个明显的问题:
HINT
的格式和内容比较复杂,不易理解和使用。使用命令行方式时,需要
-c
参数HINT
才会生效,容易在编写命令时遗漏。
为了解决以上问题,PolarDB-X 2.0扩展了部分DDL的语法,新增ASYNC=TRUE
选项来支持异步执行。
说明
DDL中同时使用ASYNC
和HINT
的情况下,以ASYNC
的为准。
支持版本
PolarDB-X 2.0的计算节点的版本为5.4.18-17142802及以上。
支持的DDL类型
运维DDL
continue ddl #job async=true;
cancel ddl #job async=true;
rollback ddl #job async=true;
pause ddl #job async=true;
pause rebalance #job async=true;
continue rebalance #job async=true;
cancel rebalance #job async=true;
OPTIMIZE TABLE
optimize table #tb async=true;
ANALYZE TABLE
analyze table #tb async=true;
ALTER TABLE
alter table #tb add index #index(a) async=true;
alter table #tb add global index #gsi(a) partition by key(a) partition async=true;
alter table #tb modify column a bigint async=true;
alter table #tb drop column a async=true;
alter table #tb drop index #index async=true;
alter table #tb split partition p1 aysnc=true;
alter table #tb move partition p1 to #dn aysnc=true;
alter table #tb set tablegroup=#tg aysnc=true;
...
说明
支持所有ALTER TABLE
语句。
ALTER TABLEGROUP
alter tablegroup #tg move partitions #p,#p to #dn aysnc=true;
alter tablegroup #tg split partition #p aysnc=true;
说明
支持所有ALTER TABLEGROUP
语句。
CREATE GLOBAL INDEX
create globle index on #tb(#col) partition_definition async=true;
CREATE INDEX
create index on #tb(#col) async=true;
不支持的DDL类型
CREATE TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE PROCEDURE
DROP PROCEDURE
CREATE DATABASE
DROP DATABASE
CREATE TABLEGROUP
DROP TABLEGROUP
CREATE SEQUENCE
DROP SEQUENCE
ALTER SEQUENCE
文档内容是否对您有帮助?