传统DBA VS 互联网DBA
从大的方面看,DBA可以分为传统DBA和互联网DBA。我们一起来看看他们有什么样的区别。
首先,传统DBA也就是传统意义上的DBA,这个岗位意味着自动化程度较低,主要靠人工在运维,重复劳动相对会比较多。这个岗位,基本上只要管好DB本身即可,一般无需关注操作系统、硬件、网络、安全等技术细节,最多关注到主机和存储设备即可,
传统企业的Oracle DBA基本就是这样的工作内容,所以传统DBA的典型代表,其实就是Oracle DBA。
那么,互联网的DBA是怎样的呢?互联网DBA意味着自动化程度较高,一些重复性的劳动主要靠平台或工具在运维。互联网DBA需要关注的方面也相应更多,操作系统、硬件、网络、NoSQL、自动化运维开发,都需要懂一些。特别是自动化运维平台的开发,能避免很多重复性的劳动,通常,这种平台都需要亲自参与开发,用起来才比较顺手。
互联网DBA的典型代表是MySQL DBA,而MySQL一般在互联网业务中使用,所以这一类的DBA通常都在互联网企业。
DBA每天在忙啥?
神秘的DBA每天都在忙些啥呢?我们先来看传统DBA的一天,这里以Oracle DBA为例子。
一般来讲,上午DBA会做一些巡检的事情,比如备份是否ok,日志是否有报错、有没严重的等待事件、连接数高不高、并发数高不高、空间是否足够。
做完巡检,一个上午也差不多过去了,下午呢,DBA会关注数据库性能方面的事情,比如看看AWR报告,看看SQL报告,判断一下DB性能有没低于基线、看看有没跑的很慢的SQL、SQL能不能做下优化。
好不容易熬到下班了,晚上可能还会接到一些比较特别的需求,比如数据库迁移、SQL发布、数据归档等,这些需求基本上只能在晚上干活,因为这些操作会影响数据库的正常使用。
讲到这里,大家可能对DBA这份工作有点望而却步吧,工作都排的满满当当的,没有一点自己的生活。那事实上也算是如此吧,传统DBA自动化程度偏低,承担了太多这种重复性的劳动。
那有没办法可以改变传统DBA的这种状态呢?我们来看看互联网DBA是怎么做的?
互联网DBA和传统DBA的最大区别,就在于大部分重复劳动会通过自动化运维平台来完成,那DBA就可以腾出手来做更多有价值的事情。所以,一个理想的MySQL DBA的日常工作会是这样分配的。
自动化和主动优化会占据60%的工作,我们要避免重复劳动,就必须有一套强大的自动化运维平台来代替DBA完成手工的事情,同时我们也需要有一套强大的数据库架构,这种架构是需要不停深入去打磨的。
其次是DB监控,大概会占据20%的工作,监控会代替DBA去发现数据库的异常,这个时候就需要DBA出马来快速解决异常。
最后20%是基础工作,比如备份恢复、实例部署、权限管理、SQL审核等等,这一类的工作大部分是重复性的,也可以通过运维平台来完成。
DBA是救火队员
除此之外,不管是传统DBA还是互联网DBA,我们还经常要充当一线救火队员,比如碰到数据库挂了、开发误删数据这些紧急事件,这个时候就要求DBA随时随地都能紧急上线,快速解决问题,恢复正常业务,所以DBA还需要有一颗强大的心脏。