创建结构变更工单时,默认采用 OnlineDDL 的方式执行 SQL 命令。通过 OnlineDDL 工单可以协助您规避数据库锁表而导致的 DML 或查询阻塞问题。本文介绍如何在数据库工作台 DBW 控制台创建无锁结构变更工单即 OnlineDDL 工单。
在创建无锁结构变更工单时,选择的表需要有主键。
仅支持选择开启安全管控的实例创建无锁结构变更工单进行纳管。
仅支持在 DBW 用户管理内添加的用户创建工单。
支持的 SQL 类型包括 ALTER TABLE
、CREATE INDEX
、DROP INDEX
,具体信息,请参见参考文档。
创建无锁结构变更工单前需确保数据库实例中没有持有锁,否则将阻塞无锁结构变更工单的执行。
OnlineDDL 执行期间请勿手动执行其他 DDL,否则可能会导致手动执行的 DDL 结果被覆盖。
登录 DBW 控制台。
在顶部菜单栏,选择地域。
在左侧导航栏,选择数据管理 > 工单列表。
在工单列表页面,单击创建工单。
在创建工单对话框,配置以下参数信息。
参数 | 说明 |
---|---|
创建人 | 默认为当前登录的账号,不支持修改。 |
工单标题 | (可选)自定义工单标题。工单标题的长度不能超过 200 个字符。 |
数据库类型 | 选择云数据库 MySQL 版。 |
工单类型 | 选择无锁结构变更。结构变更表示通过 说明 默认优先采用 OnlineDDL 的方式执行 SQL 命令。 |
执行方式 | 按需选择执行方式,支持以下选择:
|
执行开始时间 | 按需设置开始执行工单的时间。 说明
|
执行结束时间 | 按需开启和设置工单执行结束时间。 说明 在执行方式选择审批后定时执行并设置了执行开始时间时,执行结束时间需晚于执行开始时间。 |
实例 | 从下拉列表中选择需要创建的工单的实例。 |
数据库 | 从下拉列表中选择需要创建工单的数据库。 |
SQL 文本 | 按需设置 SQL 语句。单次提交多条 SQL 语句时需用英文逗号(,)隔开。关于结构变更支持的 SQL 语句,具体请参见参考文档。 |
工单备注 | 自定义您的工单备注,建议和您的业务相关,方便后续查找。 |
单击下一步。
在工单预检查配置向导页面,可查看包括语法检查、安全规则检查、权限检查和影响行数(系统统计值,实际影响行数仍然以 SQL 执行为准)预检查项。
说明
如遇预检查未通过的情况,您可以单击检查项的结果详情列的查看详情,查阅未通过的具体原因,并在修复后重新创建工单。
若您的账号为主账号,在语法检查和影响行数预检查均通过,但安全规则检查或权限检查未通过的情况下,可直接单击确定创建工单。
若您的账号为子用户,在语法检查、影响行数预检查和权限检查均通过,且安全规则检查中无高预警检查项未通过的情况下,可直接单击确定创建工单。
单击确定。
结构变更支持的 SQL 语句如下表所示。
分类 | DDL 操作 | SQL 模版 |
---|---|---|
索引操作 | 添加索引 |
|
删除索引 |
| |
添加一个二级索引 |
| |
删除一个索引 |
| |
重命名索引 |
| |
添加 FullText 索引 |
| |
添加 SPATIAL 索引 |
| |
修改索引的类型 |
| |
列操作 | 添加列 |
|
删除列 |
| |
列顺序重排 |
| |
设置列的默认值 |
| |
删除列的默认值 |
| |
修改列的 |
| |
设置列为 NULL |
| |
设置列 NOT NULL |
| |
修改 ENUM 或者 SET 列的定义 |
| |
外键操作 | 新增外键限制 |
|
删除外键限制 |
| |
表操作 | 变更表字符集 |
|
修改 |
说明
| |
修改 |
| |
设置字符集 |
| |
|
| |
FORCE 重建表 |
|