前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DBA需要具备开发能力吗?

DBA需要具备开发能力吗?

作者头像
数据库交流
发布2022-04-25 09:18:17
8910
发布2022-04-25 09:18:17
举报
文章被收录于专栏:悦专栏悦专栏

上周我们在几个社群做了一个问卷,“DBA需要具备开发能力吗”,这里附上结果:

选项

票数

占比

不需要

1

2.5 %

需要会用Python,但不需要特别强的开发能力

12

30.0 %

需要特别强的Python开发能力

3

7.5 %

需要会用Go,但不需要特别强的开发能力

2

5.0 %

需要特别强的Go开发能力

3

7.5 %

需要会用Java,但不需要特别强的开发能力

2

5.0 %

需要特别强的Java开发能力

1

2.5 %

需要会用Shell,但不需要特别强的开发能力

9

22.5 %

需要特别强的Shell开发能力

3

7.5 %

需要C语言/C++开发能力,要能读懂MySQL/Redis等数据库的源码

4

10.0 %

需要其他语言的开发能力(比如:PHP、Ruby)

0

0 %

虽然参与投票的不多,但大体能反映一些情况:

  • DBA 需要开发能力;
  • Python 和 Shell 还是 DBA 需要掌握的;
  • 有一部分人觉得也需要掌握 Go;
  • 有少部分人觉得需要读懂 MySQL、Redis 等数据库的源码。

我们再来看一下某招聘网站 DBA 的 JD:

(一)

(二)

从上面两个截图可以看出,都要求至少掌握一门脚本语言。

那么工作中,DBA 需要开发哪些东西呢?

这里根据笔者以往的工作经验和周围一些 DBA 大佬的分享,总结出 DBA 在工作中需要开发的内容:

  • 开发自动化运维平台,比如数据库状态、参数管理,资源申请等,都通过自动化运维平台实现,让 DBA 从日常琐碎的事情中抽离出来,研究更多的新技术和优化数据库;
  • 编写监控脚本,开源的一些监控工具中,尽管能找到一些开源的监控脚本,但很多特殊的监控是需要 DBA 编写的;
  • 高可用方面,有一部分是公司内部自己开发一个高可用工具,这个对 DBA 要求开发能力是必须的;另外一部分是用开源的高可用软件,比如 MHA(Perl 语言开发,之前写过几篇 MHA 的源码解读,可点击跳转)、Xenon(Go 开发)、Orchestrator(Go 开发,之前的文章有介绍过一期,可点击跳转) 等,这些软件都可能需要自己二次开发一些模块,或者能读懂源码,从而解决工作中遇到的一些问题;
  • 对数据库二次开发,真正会对 MySQL 和 Redis 等主流数据库做二次开发的公司,可能非常少,所以岗位也很少。当然如果考虑进入这些公司对主流数据库做二次开发,也可以尝试学习 MySQL 和 Redis 源码;
  • 日常运维,比如迁移,升级、备份等操作,如果实例比较多,都需要提前开发好批量执行的脚本。

Python 和 Go 怎么选?

从文章开始的投票结果中,Python 目前还是占主流;但从目前的一些情况看,比如 K8s、Docker、Orchestrator、Xenon、TiDB 等 Go 的开源项目兴起,也建议 DBA 掌握 Go 语言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 悦专栏 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档