2011年12月23日 星期五

0.1. DBA的性格


http://blog.oraclefans.cn/baishan1/entry/dba%E6%97%A5%E8%AE%B0_%E5%89%8D%E8%A8%80%E4%B9%8Bdba%E7%9A%84%E6%80%A7%E6%A0%BC
0.1. DBA的性格

不一定任何人都需要从事DBA这个工作,DBA是一种压力相对比较大的职业,并且要求从业人员在工作期间不断的学习新的技术。Oracle数据库每5年左右会进行大版本升级,这就需要DBA不断的学习新的知识。记得几年前在做一个项目的时候,和一个干了七八年的老DBA一起聊天,他说本来想好了,9i的技术就不去学习了,就吃8i的老本了,不过没办法,想要生存,必须去学习。最后他说他的最大愿望是不要再去学10g 的东西了。不过愿望只是愿望,2年后,我看到他出差的时候带着一本10g 的书,就说起了那次对话。他也只能笑着说,干DBA的都是苦命人,不学习是不可能的。DBA这个职业可以做的很长,国外一些高手和大师都是从事DBA工作超过20年的。不过对于绝大多数朋友来手,DBA只是职业生涯中的一个台阶而已,因此在做职业规划的时候,首先你需要考虑DBA是作为一种过渡性的工作呢,还是作为一种生活和爱好。

这就需要根据自身的性格来考虑了,有几种性格是不适合做DBA的。DBA需要谨慎的态度,如果你的性格比较急躁,那么DBA不是适合你的工作。DBA承担了企业中最为重要的数据库的维护,其工作性质决定了DBA是一种压力十分大的职业,在处理日常工作以及突发性问题的时候,急躁是最为可怕的性格,越是碰到紧急的问题,越需要DBA以冷静的心态来面对,否则很容易出现不必要的问题。2004年美国的一项调查表明,超过30%的系统故障是由于维护人员人为失误造成的,因此沉稳的性格是DBA减少出现操作失误的一个重要保证。

除了急躁外,好奇心太强的人也不适合做DBA。DBA在做维护工作的时候,经常会碰到一些莫名其妙的事情,和自己工作无关的事情尽量不要做,这是铁的纪律。Oracle公司的工程师到客户现场工作的时候,一般会拒绝客户提出的和本次任务无关的工作,这也是oracle原厂服务经常被客户诟病的一点。不过我认为这是一种很职业的态度,我只做和我工作相关的事情。从另外一个角度来说,就是做自己技术能力范围内的事情。有些DBA无法判断某个操作的风险,在这种情况下,客户让你做某件事情,你到底是做还是不做呢?最好的方式是通过向专家咨询,确认没有问题后再去做。一个好奇心很强的DBA,可能发现了一个新的脚本,就很急迫的想在自己维护的生产库上尝试一下,可能他根本没有去考虑这个脚本是否存在风险。实际上,在我这十多年的DBA工作中,也多次出现了由于好奇心强导致去做一些自己认为没有风险的事情,结果或多或少的造成了一些问题,甚至有一次我在一个客户的生产库上尝试一个以前没有做过的DUMP命令,最终碰到了一个Oracle 的BUG,导致RAC的一个节点宕机。从那以后,哪怕再好奇,我也会先充分评估操作的风险,并且尽可能不去做一些和自己工作无关的分析。实际上,作为一个DBA是很难经得起诱惑的,因为有很多情况可能你一辈子也碰不上几回,作为一个爱好ORACLE的人,碰到了某种现场,都可能会被吸引,甚至诱惑。作为DBA,经得起诱惑,是十分好的性格。从另一个方面来说,DBA需要足够的职业素养,由于DBA工作的风险十分高,任何一个违背职业素养的工作习惯都可能演变为工作中的失误,因此做一个真正的职业人是十分关键的。

DBA需要有决断的性格。虽然强调DBA不能胆子太大,但是在某些情况下,DBA必须决断。有一次客户的数据库出现了严重的问题,导致宕机,启动后没多久再次宕机,客户也十分着急,由于时间十分紧迫,现场工程师和我们在二线做支持的人都没有足够的时间去进行分析,我当时感觉和我以前碰到的一个BUG十分类似,不过从CALL STACK来看,还是有些差别。当时现场工程师就不敢做这个决定,我说这种时候了,如果这个补丁不起作用,我们的服务也就做到头了,这种情况下目前没有别的思路,但是我们目前什么都不做,肯定是不行的,所以立即打补丁。幸运的是,补丁打上之后,数据库恢复正常了。决断不仅仅是一种性格,这种情况下,决断是基于一定的条件的,因为我知道,哪怕这个补丁不能解决问题,也是没有副作用的。对风险的理解,是决断的基础。

DBA的责任心是十分关键的。我面试一个DBA,首先看到的不是他的技术能力有多强,而是他的工作态度和责任心。一个有责任心的人,哪怕技术水平稍微差一点,也不容易出大问题。而一个缺乏责任心的DBA,不亚于一颗定时炸弹。能把工作当成自己的事情的人,是肯定能够成为一个好的DBA的。在很多情况下,DBA的工作都是从纷繁的表象中去发现危险的存在,一个把工作当成苦差事的人,是很难做到这一点的。我平时很少会和同事发脾气,唯一的一次,是因为一件小事。当时客户的一个系统需要我们帮助做一个健康性检查,一共有10多套大型数据库,要在2、3天内完成巡检工作。当时有三个人一起参与巡检,采用的方式是集中采集数据,集中编写报告的方式,这种方式一般来说我们很少采用,因为这种方式可能导致巡检的质量下降,不过由于时间紧迫,也只能采用这种权宜之计了。在做巡检之前,我就和哥几个说虽然时间紧,但是一定要认真。虽然哥几个答应的挺好,不过报告出来后,我感觉还是过于粗糙。我只好打回去让他们整改,整改了2、3次还是难以让人满意。事后我和哥几个说,如果你把这件事当成一个工作,确实让一个人在这么短时间里做这么多库的巡检,难免会有些枯燥,质量下降也是难免。不过如果你是以前的手工艺者,做巡检就是我们的手艺,你拿出的活能不能对得起自己这点手艺呢?大家听后都感触颇深,既然我们吃这碗饭,那么我们就应该拿出对得起这碗饭的手艺。现代社会比较浮躁,大家都是为了生活而工作,工作已经不是目的而只是手段,这一点我也能够认同,不过人除了物质的东西,总还是需要一些形而上的信仰来支撑自己,否则会失去很多乐趣的。这种信仰就是手艺人赖以生存的基础,失去了这些信仰,把DBA工作当成纯粹的谋生手段,那么你还会为了解决一个问题而兴奋不已吗?还会为了自己的失误而感到懊悔吗?

每一个准备做DBA这个工作的人,无论自己的职场规划是如何的,作为DBA就应该明白自己承担什么样的责任。摆在我们面前会有很多的诱惑,你面对的是企业最为宝贵的财富--数据库。可能你干一辈子的收入还不如把其中一小部分数据复制出去卖给别人赚的多,但是你必须守住自己的信念,你必须对得起自己,对得起自己的衣食父母。记得刚刚工作的时候,我在DEC软件中心,帮助香港氧气公司移植他们的核心业务系统,我负责的工作就是将香港氧气公司的TME数据库里的数据移植到OPENVMS的RMS系统中去。我第一次接触数据之前,老板让我签署了一个保密协议,他当时对我说,这些数据,随便拿出一些,你就可以卖出几十万的价钱,但是我相信你不会这么做,作为职场中的人,这是最起码的道德底线,今后你可能会遇到很多类似的事情,只要你一次触动了底线,那你就万劫不复了。作为DBA,那根底线是绝对不能突破的,这不仅仅是道德的问题,实际上这个底线是对我们最好的保护。

一个人的性格是天生的,不过也是可以改变的,如果一个人想去做一件事情,并且不断的在努力,成功的机会是很大的。连郭靖这种蠢笨如牛的人都可以成为一代宗师,你想成为一个DBA又有何难呢。虽然说不是所有的人都适合做DBA,不过这一切对于一个努力的人来说,都不成问题。性格是可以改变的,习惯是可以改变的,为了自己的目标,可以改变一切的人,那么还有什么不能实现吗?我们公司有一个小伙子,性格极为内向,和同事在一起上班,可以一天只说1、2句话,甚至一句话不说。有一次去客户现场工作了2个多月,我们给他一个额外的任务就是请客户的DBA吃一顿饭,就是这么一个很小的任务,他最后都没有完成。按理说,这种性格的人,是很难成为一个合格的DBA的,因为DBA需要和别人沟通,作为DBA,三分靠技术,七分考沟通。就是这样一个内向的人,在大家的努力下,通过一年的时间,居然有了很大的改变,首先是和自己同事之间的沟通多了起来,和客户之间的交流也逐渐好了起来,虽然和其他工程师比较,他还是属于沉默寡言的那一类人,不过可以看得出,他一直很努力的克服自己的瓶颈,而且我们也看到了他的努力所得到的成果,我想再有1、2年的时间,他会成功的。在这一节的最后,我举这个例子,就是想说DBA的最后一个,也就是最重要的性格--坚持。大家应该都看过士兵突击,许三多不是一个当兵的料,不够他在战友的帮助下,一直坚持着,最后成就了兵王。在这个故事里,有两个重要的要素,一个是许三多的坚持,一个是战友的坚持。钢七连的"不抛弃,不放弃"的信念是成功的关键。对于一个刚刚走入职场,想成为一个成功的DBA的人,这个信念尤为重要。

沒有留言:

張貼留言