数据库 频道

在未来的时代里,会处理运维数据的DBA可能是无敌的

周五PGCONF南京站的活动异常火爆,这让我对南京是DBA的沙漠这句话开始怀疑起来。期间也和一些DBA朋友做了些交流,其中有一个话题是未来的DBA需要些什么新技能。有很多DBA关注这个话题,我也有些意外,说明南京的DBA还不是那种想躺平的类型。

实际上作DBA为一个专业职业群体也只有三十年的历史,不过回顾这三十年,DBA的职能和技能构成还是在慢慢变化的。我刚刚入行的时候,DBA的技能很简单,能把数据库装起来,能启停数据库,能做简单的参数调整,能帮开发商建个表,设计个索引,能把监听器玩明白就已经是顶 级DBA了。数据库备份都不是DBA的专业技能,在RMAN都没有的时代里,能做个exp逻辑备份的企业都算是管理很好的企业了。而有钱的企业会购买专用的备份软件,因为这些软件早期主要是备份文件系统的,所以数据库备份的职责那时候是归系统管的,或者有些大企业有专职的备份工程师。

那时候的普通DBA大多数都是从系统工程师或者系统集成工程师转行来的,大多数没有任何编程经验。写SQL也是为了管理数据库才开始学的,并不精通。如果能写一些SQL脚本工具,甚至一些shell脚本工具,那就无敌了。我是码农出身,还干过系统集成,C语言,SHELL,SQL,网络,服务器,操作系统都能搞一些,甚至还能破解被加了密的Oracle,因此能力比较全面,学各种新东西也比较快,因此很快我就在这个行业里拥有了一些死粉用户。

随着应用系统日益复杂,对DBA的要求也越来越高,DBA除了安装部署与日常管理,还需要能够帮用户分析与定位故障,做性能优化。这些对于DBA来说要求就很高了,因此在这个阶段DBA的职能出现了分支,一些只擅长于安装部署和简单操作的DBA成为了一线的操作员和管理员,具有一定优化与故障分析能力的DBA成为了二线、三线专家。而我因为对操作系统和小型机硬件的理解比普通的DBA强一些,在解决复杂问题的方面拥有更广泛的视野,解决复杂问题的能力也高于那些不懂系统的DBA,因此在这个领域里的名气也逐渐大了起来。

随着系统的日益复杂,很多系统通过简单的配置调教已经解决不了问题了,很多系统的问题根子出在应用上,因此强大的SQL优化能力变得十分关键了。这时候最早的那批系统集成出身的传统DBA对于这些复杂问题力不从心了。有点研发底子和应用架构底子的DBA往往在SQL优化和应用优化上能表现出更强的能力。因此他们的时代开启了,我的搭档(和我一起写《DBA的思想天空》)老储因为是UNIX内核开发出身,又在政府、电信、金融等行业从事过10多年的开发工作,他转行为专业DBA后如鱼得水,解决复杂问题的性能优化问题方面对我形成了碾压。在2012年的一个电力行业的极其复杂的系统的优化中,也是依靠他的这方面的能力,帮开发商优化了几个数百行代码的核心存储过程(VPD使用的存储过程,几乎每条SQL都与之相关),才得以让这个系统的业务平均响应时间提高了数十倍。而在此之前,我对数据库系统级别的优化仅仅让业务系统的平均响应数据提高了2-3倍。

云时代的到来,不仅让DBA的技能发生了新的变化,也让DBA的工作类型发生了变化。DBA的种类更多了,除了传统的系统集成DBA、开发DBA、管理DBA、数据安全DBA、备份与高可用DBA等细分岗位,又出现了以优化开源数据库核心代码的DBA、协助开发人员优化应用与架构的DBA、开发运维工具以适应大规模数据库运营的DBA、云上云下做数据同步与数据质量管理的DBA,等等,等等。这些职能不同的DBA和谐共存,有时候也会产生冲突,甚至产生竞争。新的种类的DBA技能的出现,有时候也意味着传统技能DBA的生存空间被挤压,因此传统DBA这些年都会不同程度地感受到压力。因为我在做专职DBA之前从事过软件开发、硬件集成、系统架构设计等工作,因此这些年对DBA的技能要求虽然发生了巨大的变化,我还一直能跟上这个形势,并在数据库技术高速发展的这二十年里,反而越来越如鱼得水。

最后回到周六大家探讨的话题,我个人觉得传统的DBA依然会存在,不过他们的生存空间会进一步被一些新兴的DBA需求所挤压。采用传统模式运行的数据中心在未来十年二十年不会消失,但是数量肯定会下降,因此很多传统DBA会被迫做一些技能迁移,从而适应新的用户需求。在未来这些年里,拥有全方位技能的DBA依然十分抢手,数据库越来越复杂了,哪怕是用ORACLE数据库,也不是把一个库建起了,RAC配置好,监听配置好就行了。ADG、远程RAC、远程同步复制、GDS、融合数据库、AI4DB、DB4AI等技术的不断迭代,对DBA的技能要求在不断提升。随着开源数据库、国产数据库、实时数仓、流批一体等技术在企业里的不断深入应用,DBA需要覆盖的技术范围越来越广,对DBA的要求也越来越高。

因此在未来,DBA想要一招鲜吃遍天,达到某个能力级别就想躺平恐怕也比较难。不断学习依然是DBA想要出人头地的无二法宝。如果你真的想躺平,那么找一些DBA领域中的专业性工作岗位可能会更好一些,能熬夜的,干操作员,主要做一些安装部署,变更管理的工作,对于新技能的学习要求相对会低一些。懂开发的人,干SQL优化,数据库架构优化等工作也相对稳定一些,这些技术最近30年变化都不算太大。

不管如何,具有一些特殊技能的DBA永远是有价值的,这种特殊技能也随着数据库技术与IT技术的发展而不断变化。早期DBA懂点复杂SQL编写或者能写个SHELL脚本,或者拥有一些分析复杂问题的SQL脚本就值得东家去把他当成宝贝了。云时代,具有数据与应用架构优化能力的DBA很吃香,能写云上运维小工具的DBA更是领导的宝贝。在数智化时代,能成分利用AI工具,能自己写程序分析运维数据的DBA可能会是无敌的,因为在未来,数据库运维绝对不是简单依靠人力就可以做好的。

0
相关文章