进阶数据库工程师 你需要Get的技能
所谓DBA,就是我们通常说的数据库管理员,主要从事数据库安装、管理、调优、备份、容灾、集群、安全等。DBA除了对数据库本身比较熟悉外,还要对硬件(主机、存储、网络)、操作系统等方面有较好的理解,否则很难成为真正的高手。
传统DBA必备技能
传统工作模式下,DBA需要为企业搭建一套高可用性(HA)、高性能的数据库系统,负责数据库日常维护工作。同时,在数据库出现问题时,能够及时定位、解决问题。一名优秀的DBA通常需要掌握以下的技能:
基础理论知识,包括硬件、操作系统、网络、存储等;数据库基础知识,包括交互语言(例如SQL)、模式、范式、事务、锁等;数据库运维技能,包括部署、备份、高可用、监控、迁移、排障、巡检等;数据库性能调优技能,这是一项很重要的技能,包括慢查询分析、索引优化、参数调优等。以数据库调优为例,I/O是比较常见的性能瓶颈,想要实现最大限度的调优,不仅要了解磁盘(硬件)的工作原理,了解操作系统的相关知识,还要掌握数据库自身IO类调优参数。单这个方向而言,要学的知识和技术就非常庞杂的。
云时代,化繁为简
随着云时代的到来,云数据库的应用与大规模普及,为DBA带来了不少积极的变化。云数据库具有免部署、高性能、高可靠性、以及强大的灵活性和扩展性等性能,可以大大简化DBA重复和琐碎的日常工作。
1)免部署
云数据库一键部署,通过简单的购买操作,分钟级甚至秒级交付。云数据库种类丰富,关系型数据库如MySQL、PostgreSQL、SQL Server,非关系型数据库如MongoDB、Redis、Memcache,兼容和支持各种版本
2)高性能
云数据库软硬件深度调优,具有理想的性能表现。同时,底层硬件较快引入最新高性能硬件,例如NVMe、Skylake、25Gb高速网络等。云数据库多种性能加持下,DBA可聚焦在应用层优化。
3)高可用性
一般云数据库默认高可用架构,发生某些故障时,云数据库能够自动探测,及时容灾,保证数据库服务不中断。以UCloud云数据库为例,达到了99.95%以上的可用性,会自动支持跨可用区部署,容灾级别更高。这样,对于DBA来说,也不需要再额外部署高可用架构。
4)强大灵活性和扩展性
云数据库弹性扩展的能力,至少是支持垂直扩展(scale-up),通常也支持水平扩展(scale-out)。灵活性则是第三维度的扩展,它可以支持一主多从,读写分离。DBA能够在短期内聚焦业务,暂时不会有扩展性的烦恼。
5)自带运维能力
云数据库通常支持自动备份和手动备份两种模式,自定义备份策略,例如黑名单、备份时间段、备份源等。当出现误操作时,云数据库一般会提供一键回档的功能找回数据。并提供详细的监控数据,web console展现大多数关键性指标,也可配置异常自动告警。可以说,DBA对云数据库基本没有运维工作。
6)安全可靠
云数据库在数据存储、网络链路访问、鉴权认证、多租户隔离方面做了多重保障,以确保数据安全,除此之外,它可以支持数据库审计,后端自动漏洞扫描,定期安全加固等。
7)自带7*24小时专业DBA服务
这点非常贴心,当DBA或者研发遇到疑难杂症时,可以让云数据库的专家在线帮忙分析、解决,迅速闭环。专业服务还包括迁移上云、架构咨询、诊断、巡检、性能调优等。
新时代,Get新技能
使用云数据库后,DBA可以有更多时间关注其他技能的锻炼和培养,提升自己的综合竞争力,例如:
业务技能,在日常巡检、管理维护和故障响应工作之外,需要有更多时间专注业务发展,能力向业务侧转型。
架构设计技能,学习、制定合理的数据库架构,以支撑未来业务发展,要做到这点,挑战还是蛮大的,个人收获也会很多。
软件开发技能,掌握DevOps技术栈,与业务相结合,做SRE(Site Reliability Engineer)。
云数据库带来诸多便利,使DBA工作内容发生了变化,但不管是通用技能还是新技能,DBA的技能提升都是由浅入深,循序渐进,需要靠业余理论学习加上工作实践逐渐成长和积累,这条路上没有捷径。最后,本文附上一份数据库工程师技能成长图谱,希望对诸位DBA XDJM有所帮助。