数据变更
数据变更是对数据库发起SQL操作的任务,主要包括 DDL(数据库定义语言)、DML(数据库操纵语言)等 SQL 语句。本文介绍如何使用上线发布。
功能介绍
司南提供SQL上线流程的闭环管理。支持SQL发布的自动审核、人工审核、无锁变更、变更数据备份、定时与手动发布、发布任务跟踪。 平台内置审核规则库,审核规则来自于数据库原厂以及行业最佳实践库,可以对发布到测试库、生产库等多种环境的SQL进行自动审核,并向管理员提供风险提示与审核报告。 同时,发布的SQL,可以通过定时或手动发布模式被发布到数据库中。
- 发布前,司南对SQL进行预审核跟风险提示;对变更数据进行自动备份;
- 发布中,司南对发布任务进行状态跟踪;
- 发布后,司南对发布任务完成情况进行通知与告警。
实现上线流程的闭环管控,避免有风险或者未经审核的SQL发布上线; 避免流程绕过,紧急临时发布;避免变更数据无备份等多种影响数据库稳定运行的情况。
前提条件
- 数据源类型必须为下列其中之一:MySQL、SQL Server、Oracle、OceanBase、DB2、tidb、goldendb、mongodb、kingbase等
- 无锁变更 功能仅MySQL数据库支持
无锁变更条件
- 不能带有系统表;
- 表中必须有主键;
- 语句要去掉表名,如正常的SQL语句是: ''' ALTER CESHI ADD COLUMN cccc int(10) NOT NULL 需转换成 ADD COLUMN cccc int(10) NOT NULL '''
- 工单流程已经配置,且有访问上线工单模块权限
提交数据变更
1、登录司南平台
2、点击【安全管控】-【数据变更】
3、在数据变更列表右侧,点击 "创建" 按钮
4、在创建工单页面,根据下面字段配置工单
提示
或在【云客户端】页面菜单栏处,点击【数据变更】来创建工单
| 参数 | 说明 |
| 名称 | 请输入工单名称,为减少沟通成本,请尽量使用有意义的名称 |
| 描述 | 选填,对工单的补充说明 |
| 纳管资源 | 选择要变更的数据库,然后填入选择相关的schema或者database,以及要变更使用的账号 |
| 脚本 | 此处可通过云盘上传、本地上传、git仓库上传、手动输入 多种方式上传脚本,也可上传多种脚本:变更脚本、 回滚脚本、备份脚本。 |
| 执行方式 | 1、自动执行: 没填执行时 间,表示审核通过后立刻执行 SQL 语句,填了执行时间,则定时执行。 2、手动执行: 审核通过后,需要发起人去点击执行SQL按钮 |
| 流程配置 | 自动匹配流程模版,也可手动选择 |
| 审核规则模版 | 对SQL进行审核的规则,预先由管理员创建 |
| 是否备份 | 开启备份,SQL任务默认会在执行之前针对需要变更的内容进行备份,以防止执行出错后对业务造成影响。备份的同时,会生成回滚语句 |
| SQL审核是否开启 | 是否开启SQL的自动审核,开启后平台会对SQL进行自动审核,向管理员提示风险 |
| 审核形式 | 1、语法审核: 对SQL语句的规范性进行审核,如语法是否正确、命名是否规范; 2、语义审核: 对SQL操作的规范性进行审核,如对象是否存在、影响范围过大等 |
4、工单提交完成后,可在工单详情查看预审核信息。如果命中严重风险项,可修正语句
撤回变更工单
1、登录司南平台
2、点击【安全管控】-【数据变更】,进入【我的申请】-【待审核】列表页面
提示
或在【云客户端】页面菜单栏处,点击【申请列表】-【数据变更】-【我的申请】-【待审核】列表处操作
3、【待审核】列表右侧,点击 "撤回申请" 按钮,则可以撤回工单 撤回后,工单将不可用
审核变更工单
提示
- 创建工单完成后,由流程选择的执行角色里的任意用户审批
1、登录司南平台
2、点击【安全管控】-【数据变更】-【我的审核】,进入【待审核】列表页面
3、点击工单名称进入工单详情,可见变更脚本和预审核信息
4、在详情底部,有操作按钮,可根据实际情况选择回退或通过
| 操作 | 说明 |
| 回退 | 驳回申请,不执行该SQL任务,需要输入驳回原因,并单击确定。 |
| 确定 | 批准申请,可更改执行方式和执行时间。 |
查看工单列表
1、登录司南平台
2、点击【安全管控】-【数据变更】-【我的申请】页面,
3、选择【全部】,可查看所有变更工单,也可通过如下筛选方式快速定位到目标
- 工单名称
- 工单号
- 创建人
- 是否可用:作废的工单为不可用,其他均为可用
- 执行结果:即执行后的变更语句搜索
- 执行人