更新时间:2024-04-17 GMT+08:00
分享

SQL变更

SQL自动化变更工具可以帮助业务(主要是开发和运维)简化现网的SQL变更流程。

  • 帮助业务运维在做现网数据库变更时更好地发现SQL语句的相关风险,将高中低风险项识别出来,避免人工执行过程中产生的相关误操作。
  • 帮助业务开发简化现网上线SQL变更的流程,促进开发人员在版本开发的过程中提前将相关风险的语句进行筛选和甄别。

原流程: 开发提交电子流 > 运维手工获取电子流附件 > 运维人工评估风险 > 登录相应的数据库实例刷脚本。

现流程: 开发按照打包规范打包SQL脚本 > 运维在WiseDBA管理台上发起变更任务/发起IaC任务并自动执行 > 确认风险并执行。

前提条件

  • SQL变更只能够帮助业务对管理台中已有的数据库进行变更,对WiseDBA管理台中没有记录的数据库,需要先在管理台中录入和新增以后再用SQL自动化变更工具进行变更操作。
  • 已按照打包规范打包SQL脚本。打包命名建议:<服务名>-<db_type>-<site_name>-<sql_type>-<version>.zip
    • 变更多个逻辑库,需要创建多个目录,存放对应逻辑库的sql文件。
    • sql文件仅支持两种命名:upgrade.sql(增量脚本)和rollback.sql(回滚脚本)。

      Cassandra后缀是cql。

    • 每个sql包下都有一个package.json文件,作为当前变更包的基本信息,json文件格式如下:

      {

      "name": 包名,

      "site_name": 站点名称,

      "business_name": 业务名称,

      "service_name": 服务名称,

      "instance_name": 执行变更的实例名称(对应实例管理),

      "instance_type": 实例名称,

      "type": SQL脚本类型(dbscript_ddl(DDL脚本包)、dbscript_dml(DML脚本包)),

      "version": SQL脚本包版本号

      }

  • 已完成语法改造。
  • 已完成SQL包上传,支持以下两种方式:
  • 需要提前创建好变更电子流,具体请参见变更电子流管理

创建人工变更

  1. 进入运维中心工作台。
  2. 在顶部导航栏选择自有服务。
  3. 单击,选择微服务开发 > 数据库治理
  4. 选择左侧导航栏的“SQL变更”,单击“创建人工变更”
  5. 选择变更电子流,选择需要执行的任务变更包。
  6. 单击“保存”,IAC执行SQL变更脚本。

更多操作

创建任务后,支持实例级、Schema级、sql文件级的任务执行,操作说明如表1所示。

表1 操作说明

操作

说明

批量执行

-

批量风险评估

-

刷新

-

查看详情

单击“详情”,可以执行单个sql文件,包括风险评估和对应执行的sql文件和sql语句。

风险评估:风险评估状态有高危、中危、低危、无四种状态,如果存在高危语句,请用户自行评估风险在确定是否要执行。

执行任务

执行选项:

  • 并行执行:默认关闭,默认SQL变更任务下所有子任务都会串行执行。
  • 预检查:默认关闭,主要是检查是否存在长事务和锁,此时任务状态为“预检查中”。
  • 忽略重复执行的错误:默认关闭,默认在执行中遇到任何错误都会停止执行。
说明:
  • SQL变更工具在用户单击执行按钮后会花费1分钟左右的时间对数据库进行预检查,此过程时间较长, 自行评估是否要选择。
  • 主要是检查是否存在长事务和锁,此时任务状态为“预检查中”。
  • 预检查成功后会自动执行,预检查失败会报出提示信息,并且任务状态重新退回“准备就绪”。
  • 此时用户需要对数据库进行检查,是否此时负载较高,或者存在长事务,或者是否有大数据量的查询语句一直在执行未结束等等。
  • 检查完毕后可重新单击“执行”,如果确定该问题不影响SQL语句的执行,则可单击“执行(忽略预检查)”。
分享:

    相关文档

    相关产品