背景信息
ODC 支持对数据库中的数据进行变更。用户可以通过数据库变更任务运行耗时较高的 SQL 语句以避免语句执行超时。
注意事项
只支持对 UPDATE 和 DELETE 变更语句自动生成回滚语句。
支持的变更影响行数上限为 100W,超过则不支持自动生成回滚语句。
若表中包含大字段,不支持自动生成回滚语句。
OceanBase MySQL、MySQL 数据源下,若表中无主键或者唯一键,不支持自动生成回滚语句。
UPDATE 语句的修改字段(Set)和条件字段(Where)相同,不支持自动生成回滚语句。
最大支持生成的自动回滚语句脚本大小为 256MB。
新建数据库变更任务
示例:将数据库 odc_test 中表 employee 的 name 值 xiaoguo 修改为 xiaofeng。
信息项 | 示例值 |
项目名称 | odc_4.2.0 |
所属数据源 | mysql420 |
数据库名称 | odc_test |
表名称 | employee |
在 项目 > 全部项目 页面中单击项目名称 odc_4.2.0。
在 工单 页签中单击 数据库变更 > 新建数据库变更。
在 新建数据库变更 页面中,输入以下信息。
信息项
说明
数据库
选择需变更的数据库。
SQL 内容
选择 SQL 录入 或 上传附件:
SQL 录入:SQL 录入为默认方式,可在编辑区中直接录入 SQL 脚本。
说明在 SQL 录入中,最大允许输入 500000 个字符,如超限可上传附件。
单击 IN 值 转化按钮,可将批量复制的数据转化成 in('A','B')格式。
列值分隔符号为换行符。
行值分隔符为空格或 TAB 值。
上传附件:选择上传附件方式后,单击文件池进入文件资源管理器选择要导入的文件或者直接将导入文件拖入文件池中以完成文件上传。
说明最多支持上传 500 个文件,总文件大小不超过 256 MB。
默认附件按上传的先后排序,可拖拽改变顺序,任务执行时按文件顺序执行。
当前只支持上传 .sql 后缀的 SQL 文件。
SQL 检查
单击该按钮检查 SQL 语法。
回滚方案
指定 回滚方案。 回滚方案支持 SQL 文本录入及上传附件方式,参见 SQL 内容 信息。
说明勾选 生成备份回滚方案, 支持对 UPDATE/DELETE 语句自动生成备份回滚 SQL。
OceanBase MySQL 模式下,自动生成备份回滚方案仅支持对包含主键或者唯一键的表进行 UPDATE/DELETE 时生成对应回滚 SQL。
自动生成备份回滚方案支持的单条变更 SQL 的影响行数不超过 10w 行,数据库变更的总影响行数不超过 100w 行。
分隔符
支持 Delimiter 分隔符号。
查询结果限制
支持设置查询结果限制 (1-100w)。
任务设置
SQL 重试次数:重试次数大于 1,表示 SQL 语句执行失败后,ODC 会在三分钟后重新执行该 SQL 语句。
数据库变更工具提供两种任务错误处理方式:
停止任务:停止任务为默认方式,运行脚本的过程中出现错误时会停止运行。
忽略错误继续任务:选择忽略错误继续任务方式,在运行脚本出现错后将跳过错误语句继续执行。
选择 立即执行/定时执行 设置任务执行方式。
执行超时时间
在 执行超时时间 文本框中输入数字指定语句执行超时时间,单位为小时(默认超时时间为 48 小时,最大不超过 480 小时)。
描述
可在 任务描述 文本框中输入不超过 200 个字符的描述信息,该项为选填项。
单击 新建,完成新建数据库变更。
任务生成后可以在 工单 > 数据库变更 列表中查看任务信息。
查看数据库变更任务
任务信息
如上图所示,在 工单 的数据库变更列表中,单击操作项下的 查看 按钮。
在弹出的任务详情面板中,单击 任务信息 页签查看所属数据库、任务类型、风险等级、SQL 内容和回滚内容等信息。
说明单击 下载备份回滚方案,支持下载 ODC 对 UPDATE/DELETE 语句自动生成的备份回滚方案文件。
单击 再次发起,可重新发起数据库变更任务;单击 回滚,回滚数据。
任务流程
在任务详情面板中,单击任务流程页签查看发起任务状态、审批状态、执行状态和执行结果等信息。
执行结果
在任务详情面板中,单击执行结果页签查看执行成功和执行失败记录。
回滚工单
在任务详情面板中,单击回滚工单查看任务
任务日志
在任务详情面板中,单击 任务日志 页签查看任务的全部日志和告警日志。
信息项 | 说明 |
全部日志 | 全部日志显示任务的 INFO、ERROR 和 WARN 日志等全量信息。 单击 查找、下载 和 复制 按钮,可查找信息、下载或复制全部日志信息。 |
告警日志 | 告警日志单独显示任务的 ERROR 和 WARN 日志。当任务失败时,可通过告警日志查看错误信息。 单击 查找、下载 和 复制 按钮,可查找信息、下载或复制告警日志信息。 |