数据库自动化运维平台–自助DML
大家好,又见面了,我是你们的朋友全栈君。
其实很多公司的DBA都是苦逼的,差不多一个DBA要对应几十个甚至上百个开发。半夜爬起来处理故障,上百G的数据动不动搞个迁移,升级等 这些都是很常见的,怪不得很多DBA自嘲”我是搬砖的”。为了使DBA的工作轻松,有效率很多年前各大公司就开始自动化运维平台建设,在这方面我们属于比较晚的了。
今天介绍下最近开发的一个平台,自助DML。什么是DML,就是平常执行的增删改查数据库操作。有人有疑问这不是程序访问的操作,为什么还要做一个平台操作这些呢,其实这种操作主要是开发需要线下修复数据的一种操作,不只是增删改,还有建表,建索引,添加字段等,这些操作开发一般会提给DBA协助操作数据库。可能你会觉得这些活能有多少,其实这种活真不少,我上家公司是电商互联网公司,大概有七八百个实例,每天的这种操作有近百个。处理近百个这种需求,基本上一个人一天就不用干别的了。虽说现在的公司实例少点,但每天的工作量还是很大,关键这种工比较重复,枯燥,没有技术含量,所以迫切需要一个自助的服务平台开放出去来提高工作效率,解放DBA。
接下来先上流程图:
所涉及的技术点,如下: (1)开发语言: Python (2)框架: Flask (3)bootstrap,html,js,css,jQuery (4)后端存储MySQL (5)celery rabbitmq
平台部分截图:
1) 提交任务需要满足两个条件:(1) 元数据平台(请参考之前的元数据平台博客)集群归属部门信息不能为空 (2)提交任务的人所在部门要跟集群归属部门一致
2) 根据流程检查权限后,就会对提交的sql进行基本语法检查。为了控制对线上的影响,操作的数据量影响超过10000(可以设置)行不能提交任务。这里提交有两个按钮,其中定时是用celery实现的。
行数超过设置
没有加where条件
3) 提交后就会生成一条任务,每个任务id是唯一的 可以点击进入查看详细信息。
4) 点击sql文本查看,就可以看到提交的sql语句
5)点击上个截图上的id号就进入此页面,这个页面可以查看,审核,备注信息等。
其主要功能是审核,审核需要满足几个条件 : 1)操作的集群要有归属业务部门 2)操作库要有归属项目名称和归属人 3)不能自己审核自己提交的任务 4)如果任务提交人跟库归属人不同则需要库归属人审核 5)如果是库归属人提交的任务则需要同部门的另一人审核 (这些条件需要结合元数据平台,请参考之前的博客)
6)审核完事就可以点击执行了,执行权限只有DBA和提交人才能执行
7) 未审核, 没有权限等等都是没有办法执行
8) 执行后查看执行结果,备份会生产反向sql,例如insert 会生产delete操作备份
9) 已经处理过的可以删除并归档到历史任务里,方便以后查阅。
10) 这个页面是DBA后台操作页面, 目前只有DML,其他平台正在开发中。
总结:
此系统目前已经开放给RD使用,目前日处理需求量50+,对工作效率,安全性,RD体验等方面有了显著的提升。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145323.html原文链接:https://javaforall.cn
相关文章
- 4.4k Star SQL审核查询平台,旨在提升DBA的工作效率,支持多种数据库
- (简易)测试数据构造平台:39 - 复杂工具(数据库组件)
- (简易)测试数据构造平台:40 - 复杂工具(数据库组件)
- 5分钟自建数据库可视化平台,在线管理数据库也太方便了!
- 全平台数据(数据库)管理工具 DataCap 管理 Rainbond 上的所有数据库
- Mysql Cannot get a connection, pool error Timeout waiting for idle object详解数据库
- Oracle数据库从MySQL迁移到新平台(oracle迁移mysql)
- MySQL Variables default_week_format 数据库 参数变量解释及正确配置使用
- MySQL Variables plugin_dir 数据库 参数变量解释及正确配置使用
- Oracle客户端注册表:优化数据库性能(oracle客户端注册表)
- MySQL在数据库管理中的重要作用(mysql平台)
- 备份基于Wince平台的MySQL数据库备份策略(wincemysql)
- 的构建构建oracle数据库 平台的实践之路(oracle数据库平台)
- MySQL数据库的操作技巧:修改数据(mysql数据修改)
- MySQL:一个值得重视的数据库平台回顾(mysql一段时间)
- Win平台现已全面支持MySQL数据库!(win支持mysql)
- MySQL音乐数据库:打造你的个性化音乐推荐平台(mysql音乐)
- 操作Oracle数据库的删除操作简单而有效.(oracle数据删除)
- 揭秘Oracle数据库的分组方法(oracle几种分组方法)
- 使用Oracle快速克隆数据库实现6倍效率(oracle克隆数据库6)
- 数据库ARM平台上实现MySQL数据库连接(arm平台连接mysql)
- 数据Greenplum平台下实现Oracle数据库数据读取(gp读取oracle)
- Net平台下MySQL数据库操作实践(.net mysql操作)
- Oracle数据库中Null空值取值为0的实现方法(oracle中空取为0)
- Oracle18新版本上线探索更加强大的数据库平台(oracle18版本号)
- DBeaver 21.1.5 发布,可视化数据库管理平台
- Thinkphp使用mongodb数据库实现多条件查询方法
- CentOS下DB2数据库安装过程详解