SQL任务
SQL 任务是对数据库发起 SQL 操作的任务,主要包括 DDL(数据库定义语言)、DML(数据库操纵语言)等 SQL 语句。本文介绍如何使用 SQL 任务。
功能介绍
为保障数据安全,对目标数据源没有写权限的用户无法对该数据源的内容发起变更,如果您无权限或某些操作被 SQL 开发规范管控,在有变更需求的情况下,可以通过提交 SQL 任务工单实现。DBSC 提供的 SQL 任务功能具有全周期的安全管控,包括提交、审批、执行、回滚等步骤。
为了防止意外情况发生或者操作失误导致数据错误,系统会在实际执行对应的 SQL 任务之前,自动备份对应变更内容的当前数据状态,当错误发生,您可以下载该备份数据手动进行数据回滚,保证数据的安全。
注意事项
系统自动备份的数据会保留 7 天时间,7 天后自动失效。
前提条件
- 数据源类型必须为下列其中之一:MySQL、GaiaDB、GaiaDB-X、Redis。
- 如需使用自动备份功能,数据源类型必须为 MySQL。
提交SQL任务
前提条件
- 目标数据源数据开发为企业版
- 当前用户具有访问 SQL 任务模块的权限,更多信息,请参见 预置角色权限列表。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务 页面,单击右上角的 创建 SQL 任务。
-
在 创建 SQL 任务 页面,根据下表配置工单。
参数 说明 任务名称 输入 SQL 任务的名称,该名称通常包含了 SQL 语句的执行目的,为减少沟通成本,请尽量使用有意义的名称。最多支持 64 个字符。 数据源 目标需变更数据库所在的数据源。 库|Schema 需要执行 SQL 变更的数据库或 Schema。 执行人 当前 SQL 任务审批通过后的 SQL 语句执行人。 说明:执行人 列表中的可选项取决于如下两种情况: 预估影响行数 输入此次变更预计会影响多少行数据。在 SQL 任务的 规范预审 阶段,系统会校验 SQL 实际的影响行数和输入的预估行数是否有出入,如果不一样则会进行提示。 备注(可选) 针对当前 SQL 任务未尽事项的说明,例如执行任务的原因,期望执行时间等。 变更 SQL 输入需要执行的 SQL 语句或上传包含 SQL 语句的文件。 - SQL 文本:直接在文本框中输入需要执行的 SQL 语句。
- SQL 文件:单击上传文件,选择并上传包含需执行 SQL 语句的文件。说明:上传完成后,把鼠标移动到文件名处,可在文件名右侧选择(预览文件)或(删除文件)。
回滚 SQL(可选) 针对需要对变更提供回滚预案的企业,此处输入的回滚 SQL 会记录在当前 SQL 任务中,但在当前 SQL 任务的全生命周期中不会产生任何影响,仅用于合规操作。 - 单击 预检查,系统会提前对 SQL 语句进行检查,排除语法错误等无法执行的情况。如果 SQL 语句有问题,会在下方出现提示,单击提示中的 查看详情 即可查看具体的错误信息,方便您进行定位和修改。
-
预检查 通过后,单击 保存并规范预审,进入 规范预审 页面。系统将基于当前数据源关联的 SQL 开发规范 对 SQL 语句进行预审,会有如下几个结果:
- 预审通过:根据审批流程的配置情况,任务状态会更改为待提交或审批通过,如果是前者,请继续下一步,如果是后者,本流程结束。
- 预审不通过:任务状态会更改为规范预审不通过,您可以单击页面右上角的重新检查再次预审,也可以 撤回 SQL 任务 重新编辑并提交- 。
说明
预审出来的问题,包含了必须改进、建议改进、语法问题、权限 四个类别:
- 必须改进:命中了 SQL 开发规范中必须改进规范问题。
- 建议改进:命中了 SQL 开发规范中建议改进规范问题。
- 语法问题:请重点关注,由系统自动检测出来的语法问题,虽然不阻断 SQL 任务流程,但是该 SQL 可能会执行失败,请检查库、表存在性及语法正确性。
- 权限:命中了管理员在 SQL 开发规范 中配置的如下两个规则,SQL 任务流程被阻断。
- 开启 SQL 任务结构更新类型检查:用于允许或禁用结构变更类型的 SQL 语法。
- 开启 SQL 任务数据更新类型检查:用于允许或禁用数据变更类型的 SQL 语法。
-
在页面右上角单击 提交审批,在弹出的窗口中选择流程审批人员,单击 确定。
说明
- 根据审批流程配置的不同,此处需要选择的审批人员数量不同,请根据实际情况选择。
- 如果当前审批流程中开启了 不指定审批人,则此处将显示 提交后,所有审批人均可审批,请在审批进程查看结果,您无需手动指定审批人,所有具备审批当前工单的人员均会收到审批提醒并支持对该工单进行审批。
-
任务状态变更为审批中,在审批通过之前,您可以进行如下操作。
- 撤回:撤回 SQL 任务。更多信息,请参见 撤回 SQL 任务 。
- 转交:更改该 SQL 任务的审批人。
撤回SQL任务
SQL 任务的状态处于 规范预审中、审批中、审批通过 或 待执行 时,您可以撤回该 SQL 任务的申请,撤回后,任务不再执行,您可以重新编辑该任务单再次提交。
前提条件
- SQL 任务的状态为规范预审中、审批中、审批通过或待执行。
- 您是目标 SQL 任务的提交人或系统管理员。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,找到目标 SQL 任务,单击任务 ID 或任务右侧操作列的详情。在任务详情页右上角单击 撤回。或单击任务操作列更多中的撤回。
-
在弹出的确认窗口中,单击撤回或撤回并编辑。
- 撤回:任务状态变更为已撤回。如需重新编辑任务,可以在 SQL 任务列表找到该 SQL 任务,单击右侧操作列下的编辑,重新编辑任务单。
- 撤回并编辑:任务状态变更为已撤回并自动跳转至 SQL 任务的编辑页面。
审批SQL任务
前提条件
- SQL 任务的状态为审批中。
- 您是目标 SQL 任务的审批人或系统管理员。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,找到目标 SQL 任务,单击任务 ID 或任务右侧操作列的详情。
-
在任务详情页面,审批规范预审和 SQL 详情页签中的内容,根据实际情况选择转交、审批通过或审批不通过。
操作 说明 转交 将任务单转交给其他用户审批。 审批通过 批准申请,单击审批通过后,您可以按需输入通过原因,并单击确定。 审批不通过 驳回申请,不执行该 SQL 任务。单击审批不通过后,您还需要输入驳回原因,并单击确定。
执行SQL任务
SQL 任务的状态处于审批通过时,您可以执行 SQL 任务。
前提条件
- SQL 任务的状态为审批通过。
- 您是目标 SQL 任务的执行人或系统管理员。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,单击目标状态为审批通过的任务 ID。
- 在任务详情页面,单击右上角的执行。
-
在弹出的执行 SQL 任务窗口中,选择错误处理、备份失败处理和执行方式,单击确定。
操作 说明 错误处理 - 执行出错后,终止任务
- 执行出错后,继续任务
:SQL 执行过程中如果出错,则忽略该错误,继续往下执行。备份失败处理 SQL 任务默认会在执行之前针对需要变更的内容进行备份,以防止执行出错后对业务造成影响。支持如下两个选项: - 备份失败后,继续任务
- 备份失败后,停止任务
:备份失败后,不执行当前 SQL 任务。执行方式 - 立即执行
- 定时执行
:选择一个时间执行 SQL 语句。- 手动执行
:手动执行 SQL 任务单中的 SQL,并单击已执行,标记成功。您也可以单击前往 SQL 窗口执行手动执行该 SQL。 - 任务状态变更为备份中,如果您不需要系统帮您备份执行前数据,可以单击右上角的跳过备份并单击跳过并继续执行,等待任务状态变更为执行成功即可。
暂停SQL任务
SQL 任务的状态处于执行中时,您可以暂停该 SQL 任务。
前提条件
- SQL 任务的状态为执行中。
- 您是系统管理员或目标 SQL 任务的执行人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,找到目标 SQL 任务,单击任务 ID 或任务右侧操作列的详情。在任务详情页右上角单击暂停。
重启SQL任务
SQL 任务的状态处于执行中或执行失败时,您可以重启该 SQL 任务。
前提条件
- SQL 任务的状态为执行中或执行失败。
- 您是系统管理员或目标 SQL 任务的执行人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,找到目标 SQL 任务,单击任务 ID 或任务右侧操作列的详情。在任务详情页右上角单击重启。
-
在弹出重启任务窗口中,选择错误处理、备份失败处理和执行方式,单击确定。
操作 说明 错误处理 - 执行出错后,终止任务
- 执行出错后,继续任务
:SQL 执行过程中如果出错,则忽略该错误,继续往下执行。备份失败处理 SQL 任务默认会在执行之前针对需要变更的内容进行备份,以防止执行出错后对业务造成影响。支持如下两个选项: - 备份失败后,继续任务
- 备份失败后,停止任务
:备份失败后,不执行当前 SQL 任务。执行方式 - 立即执行
- 定时执行
:选择一个时间执行 SQL 语句。
下载备份数据
当 SQL 任务执行出错,需要将数据恢复到执行前的状态时,您可以下载目标 SQL 任务的备份数据,并手动回滚数据。
前提条件
- SQL 任务的对象数据源类型为 MySQL。
- 目标 SQL 任务的数据备份状态为已完成。
- 您是系统管理员或目标 SQL 任务的执行人。
- 备份文件未超过 7 天。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
- 在 SQL 任务页面,单击目标 SQL 任务 ID。
- 单击页面上半部分的更多,并单击数据备份右侧的下载。
- 下载后的备份文件是一个
.zip
压缩文件,里面包含了回滚用的 SQL 文件,您可以再次通过提交 SQL 任务上传该文件进行数据回滚操作。更多信息,请参见 提交 SQL 任务 。
查看SQL任务列表
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>SQL 任务。
-
在 SQL 任务页面,即可查看所有 SQL 任务。任务过多的情况下,您可以通过如下搜索方式进行任务过滤,快速定位到目标任务。
- 根据任务的流程节点
- 根据任务的状态
- 根据数据源
- 根据日期
- 根据任务名称或 ID
- 根据库名
OnlineDDL
DBSC 的 SQL 任务支持 OnlineDDL 功能,该功能可以在不阻塞表正常读写的情况下,对该表执行结构变更。更多信息,请参见使用 DBSC OnlineDDL 对表结构进行无锁变更。