全部产品
云市场

控制参数与行为

更新时间:2019-09-18 15:52:24

DDL 执行引擎的行为,能够通过参数的设置而改变。目前在 DRDS 控制台上可以自助设置的、与 DDL 执行引擎相关的参数有如下几个:

参数 影响范围 默认值
ENABLE_ASYNC_DDL 数据库级别、语句级别 TRUE(启用)
PURE_ASYNC_DDL_MODE 数据库级别、会话级别、语句级别 FALSE(禁用)
MAX_TABLE_PARTITIONS_PER_DB 数据库级别、语句级别 128

ENABLE_ASYNC_DDL

该参数默认启用,即采用新的 DDL执行引擎。

禁用该参数后,DRDS 将使用 5.3.12 版本之前的 DDL 执行引擎,将无法使用文档中描述的任务管理语句和功能。

建议咨询 DRDS 技术支持后,再决定是否禁用改参数。

用法:

  • 数据库级别:通过 DRDS 控制台的参数设置进行调整,整个数据库范围内生效
  • 语句级别:通过在 DDL 语句前增加 HINT 的方式 /*+TDDL:cmd_extra(ENABLE_ASYNC_DDL=FALSE)*/,可以实现语句级别的控制,仅对该语句生效

PURE_ASYNC_DDL_MODE

该参数仅在 ENABLE_ASYNC_DDL 为 TRUE 时生效。

禁用该参数时,客户端连接 DRDS 执行 DDL 时是同步阻塞的方式,即 DDL 执行完毕后再返回,客户端与 DRDS 连接被中断后,正在执行的 DDL 任务也可能被中断;启用该参数后,客户端连接 DRDS 执行 DDL 后立即返回,可以通过 SHOW DDL 查看 DDL 任务的状态。

为了保持与 MySQL 执行 DDL 行为的兼容性,除非明确需要启用异步模式规避客户端与 DRDS 连接意外中断的场景,该参数保持默认值即可。

用法:

  • 数据库级别:通过 DRDS 控制台的参数设置进行调整,整个数据库范围内生效
  • 会话级别:连接 DRDS 后,执行 set PURE_ASYNC_DDL_MODE=true 或 set PURE_ASYNC_DDL_MODE=1 设置会话变量启用异步模式,在当前会话范围内生效;通过 set PURE_ASYNC_DDL_MODE=false 或 set PURE_ASYNC_DDL_MODE=0 恢复该会话的默认行为,使用同步模式
  • 语句级别:通过在 DDL 语句前增加 HINT 的方式 /*+TDDL:cmd_extra(PURE_ASYNC_DDL_MODE=TRUE)*/,可以实现语句级别的控制,仅对该语句生效

MAX_TABLE_PARTITIONS_PER_DB

该参数仅在 ENABLE_ASYNC_DDL 为 TRUE 时生效。

创建拆分表时,若指定的单个物理库的分表数超过该参数的限制时,DDL 任务将报错停止执行。

如果确实需要更高的上限,可以调整该参数。

用法:

  • 数据库级别:通过 DRDS 控制台的参数设置进行调整,整个数据库范围内生效
  • 语句级别:通过在 DDL 语句前增加 HINT 的方式 /*+TDDL:cmd_extra(MAX_TABLE_PARTITIONS_PER_DB=400)*/,可以实现语句级别的控制,仅对该语句生效