数据库平台

来源:这里教程网 时间:2026-03-01 16:21:51 作者:

之前写的一个数据库平台,使用的Django。本来数据库平台是包含了很多的部分,但是自己没有太多时间投入到上面,所以当时的数据库平台的各个部分使用了很多的开源系统,修改了部分代码适配后使用了,所以我的数据库平台中只是自己写了数据库cmdb 部分,还想讲一些统计信息放到上面进行展现,只是实现了慢查询统计的定时收集展现。定时任务通过celery执行。认证使用cas进行认证。代码实现了多环境,可以指定不同的环境,dev,test,prd。方便连接不同环境的配置。使用gunicorn部署。 cmdb这个不太好标准化,都有自己的特殊需求,会跟运维的cmdb进行交互,主要是获取部门业务线信息,将db归属到具体业务线下面。cmdb相当于中枢系统,需要与各个组件交互,所以如果每个组件没有统一在数据库平台上实现,需要制订好接口,各个部分通过接口或者消息队列与数据库平台交互。更多常见的是脚本中暴力的直接sql写到库里,这种的也行,能用就行呗,就是low了点。 数据库数据同步系统 这个主要是当时开发会提很多的MySQL数据同步的请求。将数据从线上同步到测试,预上线等,次数也不少,每次手工去同步真的是忙不过来,所以提前就做了一个单独的在线同步系统,使用的ldap认证,开发登陆后,自己提个单子,然后可以自己执行同步,同步任务使用的celery异步执行,执行完成后,可以发送webhook 提示成功信息。也可以将数据导出成sql文件或Excel文件,并且可以在界面上获取文件,这个功能肯定不合规的,后面就禁用了。使用的查询平台进行下载。当时没有工单系统,所以开发对数据库的一些申请操作,有的放到这个系统上了,后面有了工单系统后,权限的开通都转移到工单系统上了。 数据库的创建这个部分需要需要跟很多系统进行交互,cmdb,查询平台,sql审核平台,授权,域名,调用的接口很多,或者直接放到队列,让各个部分去消费。这个有点复杂了,直接用接口就可以,毕竟qps不会很高。 数据库实例安装部署在数据库同步系统中使用了salt api进行部署,当时是测试通过了,但是没有真正用,主要是当时没时间,也没心情搞了。 总体来说,数据库平台的各个组件我基本上都实现了,虽然不是一个完整的统一平台,但是通过接口可以将数据串联起来形成数据的闭环。 我实现的数据库平台的组件包含:cmdb python 数据同步 python 基于master slave的定时任务平台 golangdbagent,收集数据库的信息,进行报表展示,告警,容量规划等。 golangmysql数据对比 golang备份agent,这个备份的调度是linux crontab执行的,应该使用上面的定时任务平台管理,更方便。 python 使用的开源组件包含:查询平台 python,查询平台在添加新数据库的时候,需要重启,应该部署多个节点,上面挂nginx,轮询重启。sql审核平台 python监控告警高可用, 高可用这做的不多,主要是工作上没有条件去做,都是手工处理,切换。 自己写的脚本:大事务分析脚本 python processlist故障分析脚本 pythonvariables 对比 python 表结构对比  python输出cluster架构信息脚本  python脱敏脚本,python  脱敏脚本跟业务强相关无法通用,需要考虑幂等性。 mysql数据系统表空间解析 这个是实验性质的开发, golang 关于中间件,个人感觉vitess更好,因为是golang开发的,相对比其他中间件,dba能容易hold住,有大厂线上使用,缺点是使用条件高,运维成本高,掌握源码成本高。 vitess源码研究中

相关推荐