在工作中,存在大量场景例如项目发布上线数据初始化、历史数据清理、问题修复、测试等,需要对数据库中的数据进行更新操作。本文介绍DMS提供的数据变更功能,支持包括但不局限insert
、update
、delete
、truncate
等功能。
操作步骤
- 登录新版DMS控制台。
- 在页面顶部,选择。
- 可参考下表填写数据变更工单申请,并单击提交申请。

表 1. 数据变更参数说明
参数名 |
说明 |
原因类别(必填)
|
选择数据变更的原因,方便后续查找。 |
业务背景(必填)
|
详细描述变更原因或目标,减少沟通成本。 |
变更相关人(选填)
|
设置的相关人员都可查看工单,并协同工作,非相关人员则不能查看工单(管理员、DBA除外)。 |
执行方式(必填)
|
默认为审批通过后,提交者执行,可选审批通过后,自动执行、最后审批人执行。
|
数据库(必填)
|
选择有变更权限的数据库。若您只有目标数据库的只读权限或只有表的变更权限时则无法提交。 |
影响行数(必填)
|
预估本次更新会影响的数据行数,可在SQLConsole以count 统计。
|
变更SQL(必填)
|
必须是可直接执行的SQL语句,产品在提交时会自动校验语法正确性,不正确则阻断无法提交。 |
回滚SQL(选填)
|
可直接执行的SQL语句,变更脚本对应的逆向脚本。 |
- 工单提交后,系统会进行内容合法性检查。
- 当检查通过后,需要您提交审批,审批通过后,就会生成执行任务。
说明
- 在提交审批前,您可以修改工单内容和定时配置,一旦提交审批后,您将不能修改相关信息。
- 目前,数据变更的默认安全审批规则为:数据库对应的DBA进行审批。更多关于数据变更的审批规则请参见SQL变更安全规则。
- 单击执行变更,参考下表进行任务设置,单击确定执行。
说明 在创建工单时,若执行方式选择为审批通过后,自动执行,系统会自动跳过此步骤。
配置项 |
说明 |
是否立即执行 |
选择是否立即执行,支持:
- 立即执行:提交即刻执行。
- 定时执行:按需指定在业务特定时间执行。
默认为立即执行。
|
是否事务控制 |
选择是否开启事务控制,支持:
- 开启:遇到失败则全部回滚(仅限DML,DDL不在范围内)。
- 关闭:逐条提交,遇到失败则终止但不回滚。
默认为关闭。
|
是否备份数据 |
选择是否备份数据,支持:
- 开启:针对
UPDATA 、DELETE 语句将要影响数据,系统生成对应的INSERT 脚本附件,对原数据进行备份。
- 关闭:不生成备份附件。
默认为开启。
|
- 执行成功后可通过单击详情按钮,查看执行日志详细,包括执行语句、执行所用时间、调度详情等信息。
- 若此次数据变更不符合预期且需要快速恢复,可单击下载备份,下载对应的备份文件。
说明 快速恢复可在下载后的脚本提取回滚语句,重新提交数据变更工单进行恢复。
备份文件中主要包含以下几部分内容:
- 变更的原始SQL语句。
- 数据变更的查询SQL语句。
- 数据变更的回滚SQL语句。

修改数据变更的配置项
您可以在配置管理中修改数据变更工单中的原因类别与执行方式,自定义管理您的工单流程。
- 登录新版DMS控制台。
- 在页面顶部,选择。
修改原因分类配置项
- 单击数据变更原因分类参数名右侧的编辑按钮。
- 在参数值文本框中,编辑参数值,单击确定修改即可。
说明 参数值说明:
{"key":"参数名称","value":"显示在控制台中的value值"}
。
示例:

结果:

修改执行方式配置项
- 单击数据变更的执行方式参数名右侧的编辑按钮。
- 在参数值文本框中,编辑参数值,单击确定修改即可。

说明 参数值说明:
- COMMITOR:审批通过后,提交者执行。
- AUTO:审批通过后,自动执行。
- LAST_AUDITOR:审批通过后,最后一位审批者执行。
当前仅支持以上三种执行方式,您可以任意组合使用。
使用小窍门
- 对于需求变更,在提交审批后无论审批通过与否均可撤回工单,避免后续审批通过后误操作执行。
- 工单的审批流程由管理员、DBA在系统管理-安全管理-安全规则进行指定,建议您日常测试环境的变更也通过工单管理(考虑研发效率的影响可设置无审批),这样在变更时都有备份、行数校验等保障,即使操作不符合预期也可以快速恢复。
- 对于分库分表的场景,如果已在产品内配置逻辑库、逻辑表、路由算法则可以一个工单便捷的提交分库分表的操作,而无需逐个物理库表提交。
- 带路由算法配置且更新条件带路由字段的书写,可快速根据条件自动路由到具体物理库表执行。
- 若不带路由算法配置或变更条件里不带路由字段、路由字段书写类型与结构定义不符合这三种场景会造成SQL在每一个分库分表上逐一执行,执行时间会较久。
在文档使用中是否遇到以下问题
更多建议
匿名提交