本文档旨在介绍如何通过 ODC 多库变更工单对同一项目、不同环境的多个数据库对象结构或者数据进行统一变更和更新。
背景信息
在实际应用中,用户需要对多个环境和多个地区进行部署。多环境的典型配置包括但不限于以下场景:
对于单一业务系统,其生命周期涵盖从开发、测试直至上线的不同阶段,故设有明确区分的环境体系,包括开发环境、测试环境、预发布环境以及正式生产环境。
同一业务的生产环境根据地域分布或灾备需求,会在不同地区设立多个部署节点,例如杭州中心、上海中心和北京中心各自承载业务生产系统的一部分或者全部。
为了确保各环境下数据库对象结构始终保持一致,不仅要在初始化阶段确保所有环境的结构配置完全相同,而且在后续任何结构变更发生时,均需确保在所有环境中统一实施这些变更操作。若缺乏规范化的流程管理机制将极易导致操作疏漏,从而增加产生风险的可能性。
ODC 多库变更管理旨在减少多环境结构变更过程中的潜在风险,让用户能够轻松确保各个环境下的库结构一致性。
ODC 支持对同个项目、不同环境的多个数据库,按串行或并行的编排顺序执行 SQL 变更。
串行执行变更:多个数据库按照设定的优先级串行执行变更,每执行完一个数据库的变更会反馈该数据库执行状态,类似于研发执行顺序:测试环境执行完成后,再执行预发环境,最后执行生产环境。
并行执行变更:可以分批次,同时可以穿插串行。
本文档以新建多库变更为例,介绍如何在 ODC 中创建表 employee 到数据库 test 和 user_ro 中。
文中所使用的均为示例数据,您可根据实际情况对数据进行替换。
注意事项
变更的数据库必须在同一项目中。
支持变更的数据库数量范围:2~100。
参与多库变更的数据库不能重复。
执行数据库变更任务期间,不允许终止该任务流程。即目前自动模式下不支持终止任务流程。手动执行时,在等待下一批次执行前可以终止任务流程,数据库变更时不可终止任务流程。
新建多库变更任务
在项目/工单中单击多库变更。
通过项目入口创建多库变更。
通过工单入口创建多库变更。
在 新建多库变更工单 页面中,输入以下信息。
信息项
说明
项目
选择需变更的项目。
数据库
选择需变更的数据库并设置执行顺序,不同节点将依次执行变更,同一节点内的库将同时变更。
支持将数据库配置保存至模板,以方便后期快速配置。
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 和 MySQL 模式下,自动生成备份回滚方案仅支持对包含主键或者唯一键的表进行 UPDATE/DELETE 时生成对应回滚 SQL。
自动生成备份回滚方案支持的单条变更 SQL 的影响行数不超过 10w 行,多库变更的总影响行数不超过 100w 行。
SQL 执行设置
分隔符:设置字段间的分隔符。支持选择
,
(逗号)、;
(分号)和:
(冒号)作为字段分割符。查询结果限制:支持设置查询结果限制 (1-100w)。
执行超时时间:在 执行超时时间 文本框中输入数字指定语句执行超时时间,单位为小时(默认超时时间为 48 小时,最大不超过 480 小时)。
SQL 执行处理:支持停止执行/忽略错误继续执行。
任务设置
支持自动执行/手动执行。
描述
可在 任务描述 文本框中输入不超过 200 个字符的描述信息,该项为选填项。
单击 新建,完成新建多库变更。
任务生成后可以在 工单 > 多库变更 列表中查看任务信息。
查看多库变更任务
任务信息
在 工单 的多库变更列表中,单击操作项下的 查看 按钮。
在弹出的任务详情面板中,单击 任务信息 页签查看所属数据库、任务类型、风险等级和 SQL 内容等信息。
说明单击 下载备份回滚方案,支持下载 ODC 对 UPDATE/DELETE 语句自动生成的备份回滚方案文件。
任务流程
在任务详情面板中,单击 任务流程 页签查看发起任务状态、审批状态、执行状态和执行结果等信息。
执行结果
在任务详情面板中,单击 执行结果 页签查看执行成功和执行失败记录。
单击操作项下的 查看 按钮支持查看数据库的任务信息、执行结果、回滚工单和任务日志等信息。