数据库运维平台~自动化上线审核需求

  数据库工单模块设计
一 功能:为研发提供自审核执行,加快应用上线速度,减轻DBA的工作量
二 核心工具:inception
三 环境:
    test 测试环境
    beta 预发环境
    online 线上环境
四 设计
   一 权限设计
    1 按照组分类,每组成员可以查询相应的线上从库数据
    2 按照组分类,每组组长能审批各组成员具体sql,并且执行
  二 事务相关
  1 sql预处理
     1 格式化sql本身,美化输出,可以对sql语句的标点符号处理
     2 sql语法校验,可以查看是否sql本身语法合法
     3 单表多DDL的语句合并
    这里推荐soar工具,能实现以上功能
  2 sql事务提交
    1 提供DML事务提交审核,提交给相应组长
三 DDL语句
   1 操作目标过滤
      1 create 建表,可交与研发执行建表操作,一旦经过审核,便可执行,对线上影响不大
      2 alter 更改表,inception会调用percona操作对大表进行处理,理论上也没问题
  2 相关功能
    DDL的问题
    1 警告功能:由于DDL操作对数据库压力可能会很大,所以要制定数据库负载检测功能,当数据库负载高于一个制定阈值时,提出警告,告知研发者
    2 进度条功能:DDL操作提供执行进度条,可供研发者观察进度,当长时间不动时需要联系DBA进行数据库进行观察
    3 DDL合并功能:一定要使用sql预处理合并多DDL单表的语句,能减少操作的成本
 3 其他操作
   对于drop truncate等功能,建议由DBA进行执行
四 数据字典
 1 汇总线上所有库表和对应关系,形成可快速定位目标
 2 自动扫描
    当数据库库表变更时触发对数据字典进行更新,保证数据字典的最新有效
五 回滚语句
  1 通过inception备份库进行查询回滚语句,展示在前端
  2 通过回顾语句进行执行进行数据修复
六 账号功能
 1 当研发执行完sql语句需要验证数据时建议提供一个主库查询账号 
    因为一般大批量的sql工单处理完时从库都会有延迟,这个主库查询账号由各组组长负责,进行功能验证
七 思考问题
 1 inception问题
   1 不合规的sql可能包括哪些方面
       对于事务操作,影响和扫描行数过多,但是又有特殊需求
       对于DDL操作, 建表不符合规范,但是又有特殊需求
  2 如果研发提出的sql平台无法通过,有两个解决办法
    1 对于 事务操作利用主键拆分,进行批量执行
    2 对于 建表操作,建议绕过平台执行
七 线上实施的问题
   1 一定要保证 测试 预发和线上的审核规则统一
   2 和研发多沟通,制定一个严格但是能符合实际的sql审核规范,确保业务正常发布  
   3 工单的提交一定要DML操作和DDL操作进行拆分分别执行

   4 制定一个使用规范,放置在平台上,供研发进行观看
八 总结
   暂时就想到这么多,有问题再补充

转载于:https://www.cnblogs.com/danhuangpai/p/10697092.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值