怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%( 二 )


/*--user=xucl;--password=xuclxucl123;--host=127.0.0.1;--execute=1;--port=3308;*/那你如果想备份的话 , 添加选项--backup=1即可
/*--user=xucl;--password=xuclxucl123;--host=127.0.0.1;--execute=1;--backup=1;--port=3308;*/审核规则goinception的审核规则可以见文档:我捡了一些我认为比较重要的审核规则 , 列成表格如下:create table
1 表属性
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%2 列属性
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%3 索引属性检查项
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%4 UPDATE/DELETE
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%5 INSERT
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%6 SELECT
怅然|mysql管理员审核SQL的必备利器,背锅概率至少下降50%使用感受简单测试了一下goinception , 整体体验下来感觉还是很不错的 , 相比于之前的inception来说 , goinception有如下几个优点:

  1. 安装部署非常简单 , 官方直接提供了二进制包
  2. 集成了gh-ost无需另外安装 , 同时也提供pt-osc方式执行DDL
  3. 提供了基于表大小的ALTER执行选项 , 并且可配置大小
  4. 支持关联更新 , inception本身是不支持的
  5. 提供了更加丰富的审核规则选项 , 并且是基于MySQL5.7的 , 相比于inception来说支持度更好
  6. 长期稳定更新 , 从github上的commit记录看作者还是更新得很勤奋的
  7. 更快的备份功能 , 之前使用inception的时候经常会碰到需要备份的binlog过大 , 网络超时的现象(从文档上看goinception使用的批量备份 , 据说速度能快很多)
系统集成到这里 , 我们已经基本上选择goinception作为我们的审核引擎了 , 那么如何集成到现有的自动化系统中是个问题 。
先说一下我们公司的情况 , 我们公司有流程中心 , 也就是开发会在上面选择库 , 提交SQL , DBA收到工单以后人工审核 , 手工执行 。
在审核过程中 , 对于DBA来说 , 肉眼审核也太过于辛酸了 , 手工执行一不小心就是背黑锅 。 所以 , 基于goinception , 我这边提供了几个restful的接口 , 分别如下:
  1. db信息接口 , 根据用户权限 , 返回该用户所能看到的dbname
  2. SQL检查接口 , 用户提交SQL , 调用goinception进行审核 , 审核通过以后到DBA
  3. SQL执行接口 , DBA选择执行的实例 , 调用goinception进行SQL执行 , 执行完成以后通知开发工单完成
  4. 开发查看工单 , 可以下载对应的回滚SQL
这样一来 , DBA的双手可以大大地解放了 , 不仅提高了工作效率 , 并且能够准确无误地执行SQL , 减少背黑锅的概率 , 还提供了回滚SQL的功能 , 假如开发发现SQL提交有误可以及时查看回滚SQL进行数据修复 。


推荐阅读