为什么好的Oracle DBA那么难找?
“Duncan……可不可以帮我介绍几个数据库管理员(Database Administrator;DBA)来我们这边上班?”做了几年的数据库顾问服务后,客户看到我,总是希望我可以帮他们介绍几个DBA。
因为我自己在DBA这个职位上的培训,是从“信息”教育培训中心出来的。我通常都会这样回答他们:“你们可以找有OCP(Oracle Certified Professional)认证的人进来,我自己也是从教育培训中心出来的。”讲到这里,有些客户可能是不好意思得罪“我的出身”,唯唯诺诺的不讲话了……
有些比较熟的客户可能会直接说:“Duncan,不是啦,我们也知道教育培训中心,他们每年都会培训出一些取得OCP证照的Oracle DBA,像我们公司的 XXX也是那样出身的,但总觉得没有你那边的好用……所以……”
数据库管理员也无解的问题症结在哪?
好用的Oracle DBA为什么这么难找?这不但是很多CIO的痛,也是很多IT主管搅尽脑汁也解决不了的问题。那么,究竟从上述教育培训中心出来的Oracle DBA都跑到那去了?
以我当初受训的那班为例,我们班上一共有25个学员,当初随班考取OCP认证的大约有15人(之后考到的,我就不清楚了),在几年职场洗涤后,现在大概只剩下6个人从事与Oracle DBA相关的工作。这6个人中,有三个人是以主管的身份“兼作”Oracle DBA。Oracle DBA在IT职场的阵亡率很高。主要的问题在于,造成Oracle数据库发生问题的原因,经常不单只从数据库而来。
以我的一个客户为例,小白(人名纯属虚构,如果雷同,纯属意外)是一个拥有OCP证照,且对数据库本身的架构、运作原理有一定了解的数据库管理员。原以为一切都没问题的,无奈小白刚一就任,就面临到替换公司数据库系统主机的问题。小白没有程序开发与主机系统管理等经验(小白是那种一毕业就去考OCP的证照,接着做Oracle DBA的人),因此,一就任就面临到不少挑战。
数据库系统在小白接手后,一直有一堆怪怪的问题发生。
问题在那?没有主机系统维护经验的小白虽然知道数据库系统本身的运作并不够顺畅,但却一直找不到问题的症结点,时间一久,他便成了大家“攻击”的对象。而且情况愈来愈严重。一开始,大伙只有在数据库出问题时,才会去找小白;到后来,只要一发生问题,不论那个问题跟数据库是否有明显的关连,大伙的第一个动作就是,把问题推到数据库或小白身上。
该状况让小白的工作愈来愈难做。理由是,小白既不懂管理主机系统,也不会撰写程序,当大家都枪口一致的说“一切都是是小白的责任”时,完全搞不懂状况的他,也只能摸摸鼻子,把这黑到发亮的锅子背下来。
幸好,小白的公司是我们维护的客户之一,历经几次的系统维护后,我们发现其实单纯只因数据库而导致的问题并不多,有一大半的问题是因为系统主机等硬件过于老旧而造成的问题,另外三分之一的问题则来自于程序撰写,如SQL语法撰写习惯不好等。
以SQL语法撰写习惯不好来说,当数据库的Loading还很轻的时候,这些有问题的SQL语法并不会对数据库或系统造成太大的影响,但是当数据库的数据成长急遽或主机负载将满时,上述的SQL语法,就像是一锅粥中的老鼠屎,会直接影响到整个数据库系统的运作效能。
在协助小白的那段时间,曾发生一个很好玩的现象:在我们还没有到现场确认问题原委前,小白总是透过电话用一付可怜兮兮的口吻跟我们求救(因为公司内部的同仁会把问题的矛头指向他)。但在我们到场了解状况后,反倒变成我们协助小白将该叫来骂的人骂一骂,例如:主机有问题,就把负责主机维护的人叫过来。程序写得不好,就把负责撰写程序的人叫来念一下。
上述的例子,在我们维护的企业中,是十分常见的状况。这代表一个Oracle DBA如果不是对系统或程序的运作有一定程度的了解,他将很难胜任数据库管理等工作。
只不过,教育培训中心提供的Oracle数据库课程,并没有教导Oracle数据库系统以外的知识,因此,非数据库本身所造成的营运问题,初任DBA一职的新人多没有能力掌控。
所以,当一个企业说他们找不到称职的或好用的Oracle DBA时,他们可能不是在说找不到“懂”数据库的人(其实考得到OCP认证,我想对数据库或多或少都有一定程度的了解),他们应该是指:他们找不到人可以用全观的角度,来解析、处理与解决导致数据库无法正常运维的原因。
我想,也应该是上述原因,我的某几位同学才会升到CIO,还兼作DBA工作。就我的观察,当一个员工有能力全角度的解析、处理与数据库运维相关的各种问题时,他已经离主管的位子不远了。
【编辑推荐】