您的位置:首页 > 其它

专访资深DBA赵振平:如何成为一名优秀的DBA

2009-04-08 17:01 453 查看
【51CTO.com独家特稿】2009年4月2日,51CTO技术人频道邀请了资深Oracle DBA、《Oracle数据库精讲与疑难解析》的作者赵振平老师作客嘉宾聊天室,与我们共同探讨如何成为一名优秀的DBA





赵振平:生于20世纪末中国西南的一个边陲小镇。公元2001年,我正式主攻数据库和数据仓库。开始的岁月,Sybase、Oracle与SQL Server三座大山压得我无法喘息,从不低头的我们仍然要继续前行的路。N年以后,我们越过了Sybase、Oracle、SQL Server、MySQL、DB2这几座大山。但是,中国至今仍然没有自主知识产权的数据库,路还很远…很长…还需要更多的人与我们一起努力!! ...

以下为聊天实录,51CTO略有整理

DBA应具备哪些素质

51CTO:今天来到我们51CTO聊天室做客的嘉宾是《Oracle数据库精讲与疑难解析》一书作者,资深Oracle DBA赵振平老师。和我们聊聊如何成为一名优秀的DBA。请赵振平老师介绍一下自己的职业经历。

赵振平: 作为一个在DBA工作很长时间的人士,我想和大家一起分享我的经验。首先介绍一下我自己,我叫赵振平,2000年左右进入IT业,那时候IT业很容易找到工作。很多华尔街金融家认为IT具有投资价值,所以他们大量引入了IT业,导致当时的网络泡沫。刚开始的时候,我作为开发人员进如IT业,我觉得开发人员转DBA,对我日后发展非常重要。作为一个开发人员,我了解整个开发流程,包括应用程序怎么部署,软件开发生命周期,还有数据库如何和应用程序如何和数据库进行交互。通过一段时间磨炼,我知道很多东西,大概2002年以后,就正式的转到DBA角色,完全脱离开发,在那个时候看DBA这个行业是很有发展前景的,不管从美国还是其他一些地方,DBA这个行业的薪酬,发展远景都非常好。

2002年我正式成为DBA后,一直从事DBA工作,到现在为止我还工作在DBA第一线。03年我获得了美国Oracle公司的证书,那时候很不容易,国内计算机书籍很少,特别是Oracle数据库这方面,应对考试的书非常少。要想通过考试除了对计算机有所了解,英文也要非常好,尤其阅读能力。要想获得第一手资料,很全的资料,必须能够阅读Oracle公司官方文档,包括翻译书,很多东西是Oracle公司官方文档翻译的。获得OCP证书以后,06年,电子工业出版社的侯老师想出版Oracle的书,我在DBA这个行业做了很多年,积累了很多工作经验,很想把我的一些心得跟广大读者一起分享,我就从那时候开始写书,一直到08年Oracle数据库这本书才上市,这就是我这几年的一些经历。

51CTO:请赵振平老师给我们讲一讲很多网友关心的问题,就是DBA这个职业发展的前景怎么样,尤其DBA的薪资水平怎么样。

赵振平: DBA在2000年左右确实是一个高薪行业,DBA薪水跟普通开发人员薪水拉得非常大,到现在很多人士都觉得DBA是一个高薪行业,导致DBA这个行业有很多人加入,竞争非常激烈,但是现在DBA行业还是薪水比较高,在国外在美国,加拿大一般可以拿到75K到80K这个水平。在国内DBA薪水拉的得开,主要看个人能力,有拿5000,8000,25万到35万的,一些高级的DBA,如果是首席DBA,在一些大公司首席DBA他们薪水可能比这要高得多。国内平均水平8K到10K水平,这就是DBA当前薪水情况。

关于DBA发展前景,我觉得这个行业还是不错的。我们放眼世界除了美国以外,世界还有很多发展中国家,这些发展中国家还需要大量的DBA,为什么?因为随着世界发展,经济发展,网络的普及,我们计算机应用在世界上越来越广,只要人类有活动,就会产生数据、信息,只要有信息数据就有需要对这些数据进行管理,只要对数据进行管理我们就需要DBA这个角色。

DBA这个行业要考虑远一点,不要紧紧把眼光放在中国,要相信某一天我不在中国找这个工作,我可能会到一个中东国家或者到北美、加拿大、日本。所以我觉得DBA这个行业我感觉还是很有前景的行业,而且这个行业随着以后的发展,这个职位从它产生那天开始,一直非常有活力,而且根据计算机在世界各个地方普及,这个职位会越来越重要,越受到人们的尊重,所以我觉得这个职位会非常有前途。

51CTO:金融危机对DBA有影响吗?

赵振平:影响非常大,DBA这个职位,在很多人眼里面就是IT职位。其实DBA这个职位分布在很多行业、领域,尤其是金融、证券业、石化,还有中国电信、中国联通,这些职位分布在这些企业,尤其是大型的金融机构,花旗银行等等,他们DBA也很厉害,他们DBA也很多。

我们知道银行数据是最重要,要保密的,所以说银行对DBA非常重视,当前金融危机对金融业的影响非常大。美国很多大银行,大证券公司,他们关闭了很多海外机构,导致很多DBA的失业,对于工作在金融领域这个行业的DBA来说,对他们影响是非常大,对于工作在其他行业的小一点。金融业受到重创,金融业传导到其他实体经济,其他实体经济受到影响也很大,在实体经济DBA他们薪水、职位能不能保住,对他们影响也是非常大。

我觉得当前金融危机对金融行业,对那些实体经济影响非常大,但是从往后看的角度,不管金融危机如何影响,总有一天金融危机会过去,而且就是说人类的活动、需求不断产生,所以说在这种前提下,这个世界很多行业还是不断需要DBA的,所以我觉得虽然受影响,但是DBA这个行业还是有前途。

51CTO:您觉得要想成为一个优秀的DBA应该具备哪些素质呢?

赵振平:我觉得分两个层次,一个从技术角度,另外一个文化的角度。作为一名DBA必须有全面知识,从技术角度来说,我们会分成两大块,硬件和软件支持。数据库运行到的设备都是大型设备,便宜一点像一些PC服务器,小的十几万,一些小型级50、60万,一些大型机价钱更贵了。我们要对硬件,主机比较了解,因为数据库直接运行在主机上,如果一个DBA对主机不熟悉,你怎么能说从何管理数据库,所以我们对主机这块必须非常了解。

另外除了对主机我们对磁盘阵列也必须了解,因为当前虽然技术发展,很多银行、证券公司,一些大的网站,他们都是提供7×24小时,7天24小时不间断运转,所以他们的设备,要提供一种高可用性,需要一些大型设备,磁盘阵列也要大型的。

另外DBA对网络也应该有一定了解,现在全球经济是你中有我,我中有你,为什么在这个金融危机发展的前期,各个国家都是各自为政来处理金融危机,但是各个国家包括美国,加拿大,其他国家采取一些措施对金融危机没有产生多大的效果。这次金融危机和美国以前发生的金融危机不一样,以前美国金融危机仅仅是美国一个国家的金融危机,而现在金融危机是全球性,一个公司在全球有很多分公司,它的网络在逻辑上是联在一起,作为一个DBA要管理可能不仅仅是你本地数据库,或者是你中国的数据库,可能你管理是全世界,这些数据库物理可能是分布在韩国日本,所以你对网络也有一定的了解,作为一个DBA硬件层次必须了解这几个方面。

赵振平:软件方面我们也要了解,首先就是操作系统,我们数据库大部分运行在Linux等平台上,如果我们DBA对他们的系统不了解,那么我们无从管理他们的数据库,因为数据库是运行在操作系统之上,操作系统就是轴,轴功能不好,其他怎么能好的。软件包括操作系统,另外就是应用程序,我们一个数据库运行最终目的,是为了给外面人或者客户提供服务,就存在就是说我们要给其他应用程序提供一个交互,如果就是说你对应用程序如何访问数据库我们连这个原理都不了解,那么我们对数据库进行管理呢?

另外重要就是我们了解运用程序如何访问数据库,为什么这点非常重要,因为我们了解这个机制,我们才能知道如何提高我们数据库性能,如何提高我们数据库的最大化,这块其实我也想多讲一下,因为其实数据库经常会发生性能下降的问题,根据我这几年的经验分析,数据库性能降低60%,是和我们硬件有关,我们硬件已经达到极限,包括内存,CPU计算能力,网络传输能力已经达到极限,这些是40%。60%是我们数据库设置不当导致效率低下,我们进行数据库性能调整,第一点首先要着眼于60%的软件问题,40%是发展我们的硬件。

我们从大的方面讲了技术层面,但要想成为一个优秀DBA有两个方面,一个是技术,一个是文化层面。文化层面就是作为一个优秀的DBA,第一必须冷静,为什么呢,数据库经常发生一些问题,当你用数据库最新版本,把最新应用用到实际工作当中去会遇到很多问题,而且这些问题你在以前没有看到过,谷歌或者百度也找不到答案,遇到这种情况必须保持冷静。另外就是必须谨慎,当你在一个公司管理一个很重要数据库,出现问题的时候,首先你的客户,同事正在等待你解决问题,老板正在催促你,CTO在督促你,这个时候必须保持冷静,因为保持冷静才能静下心来,想方设法解决问题,找到这个问题答案。如果这个时候不冷静,找不到答案,还会给公司带来损失,或导致一些其他的故障。所以作为DBA冷静、谨慎这两点是非常重要的。

另外就是DBA必须有沟通的技巧,这也是非技术问题。大家知道作为一个DBA他要服务的对象很多,大家有时候觉得他是一个很神圣的角色,其实不是这样,DBA其实是一个很下面的角色,为什么呢?因为这个角色为很多人提供服务,你要为客户提供服务,要为其他客户提供支持,你要给开发人员提供技术培训,你要给你的CTO提供整个公司数据库的硬件和软件规划,还有要给你CTO提供性能方面咨询。所以作为一个DBA你要为很多人服务,还有特别是对市场人员,在竞标一个项目的时候,DBA需要为市场人员提供一些数据方面技术支持,所以DBA也需要和市场人员沟通,所以一个DBA做得好做不好,技术是一个层次,沟通也非常重要,跟客户沟通不好,得罪公司客户;和开发人员沟通不好,开发人员可能写不出来高效的程序,不和开发人员进行合作可能导致公司整个项目往后推了;不和市场人员沟通好,市场人员得出数据不利于这个公司发展;不和自己CTO沟通好,不知道你的CTO到底让你做什么,完成什么任务。所以DBA的沟通能力是非常重要的。

另外一点,作为一个DBA必须有挑战精神,为什么必须有挑战精神,因为数据库在不断发展,公司在不断壮大。当公司业务壮大,数据量不断壮大,我们需要一些高端设备,包括硬件软件,我们需要应用新的技术解决我们面临的问题,如果一个DBA没有挑战精神,几年以后你发觉你已经被整个IT业远远落在后面了,所以说一个DBA必须有挑战性,想方设法运用最新技术解决公司问题,新的技术能够让我们业务提高好几倍,所以说DBA另外一个精神就是必须有挑战精神。这就是说作为一个DBA必须要技术全面,第二就是必须谨慎,小心,有挑战精神。这仅仅是我作为一个DBA的感受。


查看更多内容请点击此处>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: