DBA到底重要不重要,曾经是个哲学问题,但最近我突然对这个问题有了新的认识 -- DBA重要不重要其实取决于数据库的能力。在Oracle数据库时代,数据库提供了全方位的数据处理能力,数据存放在表中,业务处理逻辑能够以存储过程的形态保存在数据库中。更为重要的是,Oracle还有非常丰富的反映运行状态的指标体系,而这些数据只有Oracle DBA才能解读。正是由于这个原因,数据库管理员变得非常重要,尤其是在处理一些疑难杂症的时候。
随着信息技术的发展,数据库在IT基础架构中的形态也发生了非常大的变化,导致DBA这个行业也在发生深刻的变化。
数据库产品细分导致的类型多样化和架构复杂化
数据库经过30多年的发展,从最早的层次数据库发展到关系型数据库,近15年更是涌现出支持各种数据类型的NOSQL和newSQL数据库,这些数据库仅针对某一个特定类型的数据存储和处理,又或者仅针对某一种特定类型的计算,比如MongoDB就是专门针对文档类型的数据处理,clickhouse用于OLAP类的分析计算。如此一来,一个应用系统可能需要多种类型的数据库来支撑,整体的架构变得非常复杂,运维成本也大大增加。
近些年又开始出现HTAP和多模数据库的概念,期望减少数据库架构上的过度分散,但个人认为这也仅只是局部的集中,比如不需要因为少量的复杂查询,将一个前端的交易数据库拆分为分别应对交易事务和复杂查询的两个库,但数据处理的专用化仍然是趋势,毕竟当下的数据类型和数据容量,单一种类的数据库已经很难满足需求。
这种变化使得数据库之间的数据融合和架构设计规划非常重要。单种类数据库依赖程度的降低和规划设计能力需求的增加,这意味着DBA不仅需要学习和掌握更多种类的数据库,而且需要具备规划设计能力,让不同种类的数据库能够更好的分工协作。从这个层面看,数据库架构师会是一个不错的方向。
应用程序对数据库的依赖在降低
随着应用架构的微服务化和数据库种类的多样化,开发人员更倾向于将不同类型的数据放到更适合其存放或处理的专用数据库中。应用程序的开发上,也尽量编写标准的SQL语句,以适应在不同数据库中进行迁移的需要,业务处理逻辑则完全在应用中进行处理,这使得数据库成为一个仅存储数据的所在。
应用和数据库的解耦,使得单一种类数据库的重要程度在整体IT基础架构中的权重降低,传统DBA的重要程度自然也随之降低。
数据库在向分布式架构的方向快速进化
传统关系型数据库特别是Oracle RAC,在实例级的高可用方面已经做的足够优秀,能够在出现实例故障的时候快速的将应用从故障节点切换到幸存节点。但是这种架构数据库是单点,不管扩展多少个实例,数据库只有一个,在出现数据文件坏块或者丢失的时候,从故障中恢复的成本非常高。而且受限于数据文件的单点,不能很好的应对存储节点IO能力不足的场景,难以实现线性的扩展。
分布式数据库通常采用存储和计算节点分离的架构,计算节点是无状态的,出现异常能够快速将应用切换到幸存节点,实现类似于Oracle RAC的功能;存储节点则通过Paxos等分布式协议实现多副本,少数副本出现异常不会影响数据库的正常使用。此外,分布式的架构还具有良好的扩展性,可以根据需要扩容计算或存储节点,以满足不同场景的需要。当然分布式数据库技术比传统关系型实现起来复杂度更高,而且发展年限也比较晚,因此在某些领域仍然不如传统型,但个人仍然认为分布式会是未来的发展方向。
传统数据库运维,故障分析是DBA需要具备的一项很重要的能力。分布式数据库技术的发展,使得集群中的某个点出现故障带来的影响大大降低,很多问题可能在造成大面积影响的时候就已经自愈了,需要DBA介入分析的场景大为减少。在当下分布式技术还不是非常成熟的时候,很多问题需要从源码中找答案,需要DBA具有源码阅读和分析能力。但是很多传统DBA都较为缺乏这方面的能力。
写在最后
在传统架构中,数据库被赋予了很多的角色,甚至早些的业务逻辑都在数据库中实现,当数据库出现问题时,对业务交易造成直接影响,给企业带来实实在在的损失,由此DBA成为一个专门的职业,保障数据库的高效可用。
随着IT技术的不断深入发展,不再依赖于单体数据库,分布式数据库中的单个节点故障也不会产生整体的影响。这种架构下DBA角色的重要程度不可避免的会下降。而且大多数企业的IT部门都是服务部门,DBA乃至于数据库等基础架构都是服务于业务的需要,在架构选型等重要决策中的话语权比较弱,而数据库重要程度的下降会使得这个角色的话语权更弱。
所以建议大家“开阔视野,提升级别”,所谓开阔视野就是不要再局限在某个单种类的数据库,而是多学习不同类型的产品,了解他们背后的设计理念和适用场景;提升级别则是要着眼于整体,从业务角度来看技术的需求,一切以满足业务发展为中心。
科技发展日新月异,数据库作为核心基础架构组件自然也不例外。DBA作为和数据库连接最紧密的职业,数据库的变化对其产生的影响也最为直接。这里无意打击或者贬低某一个行业,只是希望通过这些文字给自己也给大家思考未来提供一些借鉴。
适者生存,只有不断拥抱变化,才能更好的适应未来。




