数据库自动化运维平台–自助DML

数据库自动化运维平台–自助DML今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关

大家好,又见面了,我是你们的朋友全栈君。

其实很多公司的DBA都是苦逼的,差不多一个DBA要对应几十个甚至上百个开发。半夜爬起来处理故障,上百G的数据动不动搞个迁移,升级等 这些都是很常见的,怪不得很多DBA自嘲”我是搬砖的”。为了使DBA的工作轻松,有效率很多年前各大公司就开始自动化运维平台建设,在这方面我们属于比较晚的了。

今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关键这种工比较重复,枯燥,没有技术含量,所以迫切需要一个自助的服务平台开放出去来提高工作效率,解放DBA。

接下来先上流程图:

数据库自动化运维平台--自助DML

所涉及的技术点,如下:
(1)开发语言: Python
(2)框架: Flask
(3)bootstrap,html,js,css,jQuery
(4)后端存储MySQL
(5)celery rabbitmq


平台部分截图:

1) 提交任务需要满足两个条件:(1) 元数据平台(请参考之前的元数据平台博客)集群归属部门信息不能为空    (2)提交任务的人所在部门要跟集群归属部门一致

数据库自动化运维平台--自助DML



2) 根据流程检查权限后,就会对提交的sql进行基本语法检查。为了控制对线上的影响,操作的数据量影响超过10000(可以设置)行不能提交任务。这里提交有两个按钮,其中定时是用celery实现的。

数据库自动化运维平台--自助DML



行数超过设置

数据库自动化运维平台--自助DML

没有加where条件

数据库自动化运维平台--自助DML


3) 提交后就会生成一条任务,每个任务id是唯一的 可以点击进入查看详细信息。

数据库自动化运维平台--自助DML



 4) 点击sql文本查看,就可以看到提交的sql语句

数据库自动化运维平台--自助DML



5)点击上个截图上的id号就进入此页面,这个页面可以查看,审核,备注信息等。

其主要功能是审核,审核需要满足几个条件 :  1)操作的集群要有归属业务部门  2)操作库要有归属项目名称和归属人  3)不能自己审核自己提交的任务 4)如果任务提交人跟库归属人不同则需要库归属人审核 5)如果是库归属人提交的任务则需要同部门的另一人审核        (这些条件需要结合元数据平台,请参考之前的博客)

数据库自动化运维平台--自助DML



6)审核完事就可以点击执行了,执行权限只有DBA和提交人才能执行

数据库自动化运维平台--自助DML


7) 未审核, 没有权限等等都是没有办法执行

数据库自动化运维平台--自助DML



8) 执行后查看执行结果,备份会生产反向sql,例如insert 会生产delete操作备份

数据库自动化运维平台--自助DML



9) 已经处理过的可以删除并归档到历史任务里,方便以后查阅。

数据库自动化运维平台--自助DML


10) 这个页面是DBA后台操作页面, 目前只有DML,其他平台正开发中。

数据库自动化运维平台--自助DML


总结:

此系统目前已经开放给RD使用,目前日处理需求量50+,对工作效率,安全性,RD体验等方面有了显著的提升。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145323.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • @MapperScan 源码解析

    @MapperScan 源码解析aa

  • Modbus通讯协议详细解释

    Modbus通讯协议详细解释Modbus一个工业上常用的通讯协议、一种通讯约定。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现。先来简单分析一条MODBUS-RTU报文,例如:0106000100179804010600010017

  • 解决8080端口被占用问题「建议收藏」

    解决8080端口被占用问题「建议收藏」问题叙述在IDEA中运行项目时会出现8080端口被占用的情况,可能是运行tomcat的时候,也可能是在用vue进行前后端分离项目,运行后端代码时出现端口被占用。这里以运行tomcat显示占用举例,如下图所示;解决方法1、按快捷键windows+R,在运行框里输入cmd,如图所示,2、在dos命令中输入netstat-aon|findstr“8080”,查看端口。3、找到8080端口,查看正在运行程序的pid,如图所示。4、回到桌面,任务栏,右键,任务管理器,如图所示会显示正在运行的

    2022年10月30日
  • bs与cs的区别_试比较CS与BS的工作模式

    bs与cs的区别_试比较CS与BS的工作模式提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、CS二、BS总结前言本文章记录BS和CS的区别和优缺点一、CSCS:客户端服务器架构模式优点:充分利用客户端机器的资源,减轻服务器的负荷(一部分安全要求不高的计算任务存储任务放在客户端执行,不需要把所有的计算和存储都在服务器端执行,从而能够减轻服务器的压力,也能够减轻网络负荷)缺点:需要安装;升级维护成本较高例如:就像平时玩游戏,假如它不是CS模式是BS模式,通过网页的方式展示的。如果你的网络有些卡,你正.

    2022年10月17日
  • java内部类和静态内部类区别_静态内部类对象的创建

    java内部类和静态内部类区别_静态内部类对象的创建在阅读JavaCollectionFramwork时,LinkedList中有个静态内部类:privatestaticclassNode<E>{Eitem;Node<E>next;Node<E>prev;Node(Node<E>prev,Eelem…

    2022年10月11日
  • vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出

    vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出目录1.Vim模式2.在Vim/Vi中打开文件3.在Vim/Vi中保存文件4.保存文件并退出Vim/Vi5.退出Vim/Vi而不保存文件1.Vim模式启动Vim编辑器时,您处于正常模式。在这种模式下,您可以使用vim命令并浏览文件。要输入文字,您需要按i键进入插入模式。使用此模式,您可以像在常规文本编辑器中一样插入和删除字符。要从其他任何模式返回正常模式,只需按Esc键。2.在Vim/Vi中打开文件要使用Vim打开文件,请键入vim,然后输入要编辑或创建的文件的.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号