博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库运维平台~自动化上线审核需求
阅读量:7184 次
发布时间:2019-06-29

本文共 1217 字,大约阅读时间需要 4 分钟。

  数据库工单模块设计

一 功能:为研发提供自审核执行,加快应用上线速度,减轻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

你可能感兴趣的文章
配置java环境变量
查看>>
[WEB API] CLIENT 指定请求及回应格式(XML/JSON)
查看>>
Spring Security demo
查看>>
T4模板——一个神奇的代码生成器
查看>>
软件开发知识体系汇总
查看>>
redis安装启动和数据操作
查看>>
vue中使用key管理可复用的元素
查看>>
ssh登录到linux机器一直报错/usr/bin/grep: Argument list too long
查看>>
C#操作Exchange配置
查看>>
Spark项目之电商用户行为分析大数据平台之(一)项目介绍
查看>>
C# 读取大文件 (可以读取3GB大小的txt文件)
查看>>
Warning: file_put_contents(常用单词1.txt): failed to open stream: Invalid argument in
查看>>
Avro kafka(Producer-Consumer)
查看>>
[Linux] - xxx 不在 sudoers 文件中。此事将被报告。
查看>>
Linux pwn入门教程(0)——环境配置
查看>>
全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的完全卸载(图文详解)
查看>>
完整的支付体系
查看>>
(c#) 销毁资源和释放内存
查看>>
018-Go将磁盘目录实现简单的静态Web服务
查看>>
nginx file not found 错误处理小记
查看>>