SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证。为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Inception。
花了一周看了inception官方文档并搭建了测试环境简单测试,又花了3天写了webui(内部起名叫overmind,以下也简称overmind),目前正在进行各种测试以及手册的编写,还未正式跟我们的流程结合起来投入使用,后续正式使用后再更新使用经验。

Inception

  • github:https://github.com/mysql-inception/inception
  • 官方文档:http://mysql-inception.github.io/inception-document

Inception是一个开源的Mysql自动化工具,具有SQL审核、执行、回滚等实用的功能,由国内大神基于mysql源码开发,可以很明确的,详细的,准确的审核Mysql的SQL语句,工作模式与Mysql完全相同,可以直接使用mysql客户端来连接。但遗憾的是2年前已停止更新,不过兼容大部分的mysql版本,仍然是开源SQL审核工具的翘楚。

Inception的架构如下:

inception架构图

Overmind

审核流程

我们的审核流程现在主要分两部分:

1.Dev和Qa等线下测试环境:为了简化流程,开发测试环境,可以由开发直接通过overmind系统进行审核或执行

2.Prod生产环境:生产环境以安全为主,在Dev和Qa环境执行成功后详情页面会有个“申请上线”按钮,点击申请上线自动发送邮件给DBA,待DBA审核通过后方可上线

系统介绍

  • 基本配置页面:可以直接在页面上配置inception的信息,方便迁移

基本配置页

  • 数据库信息录入:相当于一个简单数据库的cmdb系统,可以管理数据库信息

数据库信息录入

  • 审核任务提交:支持审核和执行两种模式,审核模式只给审核结果,执行模式在执行之前会先审核

审核任务提交

  • 审核结果展示:详细展示SQL审核的所有信息,包括提交用户、执行操作、审核结果等等

审核结果展示

  • 任务列表页面:可以很方便只查看自己提交的任务,或者查看固定项目的,固定环境的任务

任务列表页

关于开源

开源在我看来是一件很隆重的事情,之前刚学python的时候开源了自己写的一个简单后台sadmin(github或gitee可以搜索到),因为一些原因停止更新了。目前没有时间和精力来做长久的支持和维护,所以暂时不打算把源代码放到github上。另外同类型的已经有一个非常棒的开源产品Yearning了,可以github搜索安装学习。

写在最后

    1. 先说感谢!感谢大神开发的Inception,绝对是DBA界的福音
    2. 之所以能就花了3天时间写了overmind,主要还是借助了之前已写好的其他项目框架,在此基础上做修改,还是很快的
    3. 工具部署与页面编写都是比较简单的,团队内部都可以搞定,要把工具推出去,融入到现在的流程中是一件比较困难的事情,给团队内定的规则就是a.完善的文档,用户在审核前就知晓哪些sql通不过,在审核失败时知晓如何修改能成功,b.对用户的感知应降到最低,不要因为用了overmind而造成额外的麻烦,要让用户用的爽
    4. 希望作者或其他大神能持续更新Inception,继续造福广大DBA

最新文章

  1. [Linux] 账户管理命令(一)
  2. eclipse下的,maven+spring+springMVC+mabatis+mysql.创建
  3. NYOJ题目1102Fibonacci数列
  4. 新手入门之GDB调试
  5. RedGate .NET Reflector注册问题(反注册)
  6. XML文件操作学习(一)
  7. jquery 单引号和双引号的区别及使用注意
  8. 刷新的时候jquery获取checkbox是否为选中和设置选中
  9. 关于把A表中的数据复制到B表中。
  10. Spark1.0.0 分布式环境搭建
  11. JS DOM与BOM
  12. HashMap底层
  13. Python读写txt文件时的编码问题
  14. AngularJS初始化静态模板
  15. 详细解读Android中的搜索框(二)—— Search Dialog
  16. IIS(互联网信息服务)
  17. 汇编,浮点运算符,fldpi,fmul等指令说明.
  18. bzoj4361:isn(dp+容斥+树状数组)
  19. linux的RMP命令(rmp包的安装与反安装)
  20. 微信小程序setData子元素

热门文章

  1. 更改CodeBlocks注释的颜色
  2. c++学习总结(一)------类结构学习
  3. 2020年AI、CV、NLP顶会最全时间表
  4. ggalluvial|TCGA临床数据绘制桑基图(Sankey)
  5. (三)SpringBoot之配置文件详解:Properties和YAML
  6. 在论坛中出现的比较难的sql问题:7(子查询 判断某个字段的值是否连续)
  7. 分析js跳出循环的几种方法
  8. python处理RSTP视频流
  9. MUI顶部导航布局
  10. JavaScript基础概念与语法