请问以后想做DBA,也就是数据库管理员,但是实力不够。我该怎么办?
这几年一直在和数据库管理员打交道,直接面试了很多DBA岗位。本文想总结一下IT行业对DBA的要求,以及国内DBA新资本的现状。可以肯定的是,成为一名高级DBA是一份非常好的职业。如果你打算成为一名DBA,那么我希望这篇文章能起到抛砖引玉的作用。
DBA是什么?
数据库管理员,英文是Database Administrator,缩写为DBA。这个位置对不同的人有不同的意义。相对于分工高度细化的大公司,小软件开发工作室的DBA职责更广。一个公司,无论是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少应用不涉及数据库?数据库是业务的灵魂和大脑),你需要决定是雇佣一个还是几个DBA。了解DBA职位的要求对于在企业内定义该职位或未来的DBA非常重要。下面我列出了DBA的一些职责:
安装和升级数据库服务器(如Oracle和Microsoft SQL server)和应用程序工具。数据库设计系统存储方案,并制定未来存储需求计划。一旦开发人员设计了应用程序,就需要DBA来创建数据库表空间。一旦开发人员设计了应用程序,就需要DBA来创建数据库对象(表、视图、索引)。根据开发人员的反馈,必要时修改数据库结构。注册数据库的用户,维护数据库的安全。确保数据库的使用符合知识产权相关法律法规。控制和监视用户对数据库的访问。监控和优化数据库性能。制定数据库备份计划,在灾难发生时恢复数据库信息,在适当的介质上维护存档或备份数据。备份和恢复数据库,联系数据库系统制造商并跟踪技术信息。数据库管理员的人格特征
很多时候管理者忽略了DBA的性格特点,他们只关注DBA的技术能力。其实上面提到的每一项职责,都意味着DBA需要和各种各样的人打交道,可能是厂商,可能是用户,也可能是开发者,也可能是管理者。这表明DBA必须具备以下性格特征:
自信、好奇、坚韧的意志力、成熟、自我驱动和注重细节。为什么这些性格特征很重要?
我有几个缺乏自信的下属。他们反复问我每个细节的问题。他们没有信心做出哪怕是最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说可能不是什么大问题,但是对于那些高级DBA来说,如果缺乏自信,又能依靠谁来帮自己做决策呢?在DBA的面试中,即使不能回答一个技术问题,也要表现出足够的自信。最致命的不是不知道问题的答案,而是不知道去哪里找答案。
几乎所有的数据库系统都在不断更新。但并非所有更新都有技术文档。对于一个好的DBA来说,好奇心是必要的。没有好奇心和求知欲的DBA总是等着有人告诉他们答案。而一个好奇的DBA会安装最新版本的数据库系统,立即开始搜索功能和性能上哪怕是细微的差异和增强,从而改进自己的工作。考试时被问到的一个不可避免的问题是:你手头有什么参考资料?你如何使用它们?毫无疑问,如果你只回答数据库里的文档,或者你连看都没看过,你的“股票市值”就会大大下降。好奇心会驱使数据库管理员去理解数据字典、管理工具或其他包。
DBA经常会遇到难题。寻找答案是一种需要毅力,经得起摔打的性格特征。经常在一些讨论组或者论坛上看到DBA提出的问题。这些问题往往可以由提问者自己解决,如果他们有坚韧的个性,并试图找到问题的答案。
自驾对每个人都很重要,尤其是DBA。DBA应该能够找到让问题出现的方法,而不是坐等问题出现。自我驱动的DBA经常试图获得或编写一些必要的脚本来监控包括表大小和表空间使用情况在内的项目。如果这些项目被忽视,他们将陷入困境。在参加考试时,DBA经常会被问到他们在PL/SQL、SQL或SQL*PLUS方面的经验。这些问题将把您与那些从未编写过所需脚本的DBA区分开来。
不用说,你需要足够老练才能和用户打交道,甚至是程序员和经理。一个什么都不会的DBA,对你没有任何好处,只会点燃你部门的敌对之火。世故就是这样一种能力,你劝一个人去死,哈哈,最后这个人带着憧憬走了。很多时候,开发者、管理者、用户都会提出不合理的需求,需要DBA巧妙的引导、纠正、说服。参加考试时,你的反应可以告诉你是否老练。
最后,注意细节非常重要。注重细节的DBA,衣着整洁,有自己的作息时间,考前对所报考的单位做过调研。注重细节的DBA对数据库的核心有着深刻的理解,能够理解视图和表之间的关系。
数据库管理员的级别
DBA的水平不是很严格。根据我对数据库的了解,可以简单的分为初级、中级、高级三个级别。
初级DBA,又称DBBS,是英文数据库保姆的缩写。初级DBA往往是兼职的。他们通常是程序员或者同时从事其他工作。初级DBA往往会写出优秀的简历,参与很多与数据库相关的项目或工作。但这些项目或工作往往是:第三方软件厂商已经安装配置了数据库,他们只做一些监控工作。他们可以处理一些简单的问题,但大多数时候他们会向应用软件供应商寻求帮助。初级DBA更喜欢图形数据库管理或监控工具。他们喜欢像Access这样的桌面数据库简单易用,并简单地将这些小型数据库的经验应用到与大型数据库相关的工作中。
初级DBA最好区分。区分中级DBA和高级DBA并不容易。他们的不同在于经历不同,性格特点不同,能力不同。有许多中级数据库管理员,他们可以完成高级数据库管理员的大部分工作,包括:
数据库安装,数据库配置和管理权限设置,安全管理,监控和性能调整,解决一般问题的备份和恢复,中级DBA往往工作一年左右,熟悉一定操作系统环境下的数据库。因为对于中级DBA来说,Windows NT和Unix差别很大。中级DBA熟悉SQL。他们买了几本关于数据库的书,并对它们进行了深入研究。中级DBA经常同时担任数据库程序员,对性能、稳定性、安全性的追求基本不是很高,经常配合高级DBA做一些日常工作。
高级DBA在国内非常少见。他们买了太多关于数据库的英文资料,可能是让朋友从亚马逊上买的。与他们的报酬相比,花在书上的钱是很小的一部分。资深DBA一般都熟悉很多操作平台下的几个大型数据库。他们知道不同数据库在不同环境下的优缺点,能够对数据库平台和数据库环境的选择做出决策。他们通常熟悉系统架构和数据库设计,并且能够在各个级别优化数据库。资深DBA一般都配有助理,助理更倾向于做决策和计划。在银行、保险、网上交易等对稳定性、安全性和性能要求较高的关键业务处理领域,高级DBA往往扮演着重要的角色。
很多情况下,取得数据库专家认证证书并不是很重要。我知道很多数据库厂商只要你去培训就会拿到证书。提供商业培训的公司很多,服务质量有好有坏。所以证书不是特别有意义。
几种流行的数据库系统
最简单的数据库系统——微软SQL Server
如果你打算做DBA,我建议你选择那些现在比较流行的数据库系统。这意味着你会有更多的就业机会,交流和培训机会,受欢迎也有自己的原因,可以省心很多。当然就业竞争压力也比较大。一般初学者选择微软SQL Server,这是一个非常适合中小企业的数据库系统。熟悉Access的读者可以很容易地初步使用Microsoft SQL Server,并成为DBBS。J
微软SQL Server 7.0的报价是5个用户1399美元,添加用户时每个用户127美元。
最“困难”的数据库——不知名的Oracle
如果你能接触到甲骨文,这是一个很好的机会。Oracle是目前最有前景的数据库厂商。由于其强大的功能和可配置、可管理的能力,Oracle DBA的工资普遍高于其他数据库管理员。而且Oracle在大中型企业中的关键应用也越来越普遍。Oracle可以运行在Windows NT、Sun Solaris、Linux等平台上。很多情况下,要求你不仅要熟悉NT,还要熟悉Unix。而甲骨文不友好的界面和成箱的甲骨文产品数据也可能是一个障碍。
Oracle 8i标准版的报价,如果运行在Windows NT上,带JServer和interMedia,支持5个并发用户,报价为每CPU 3925美元。添加并发用户时,每个用户785美元。当添加额外的指定用户时,每个用户为392.5美元。
数据库系统的贵族——IBM UDB/DB2
作为30年数据库研究的成果,IBM DB2确实可以称为“数据库系统的贵族”。无论是小型企业系统还是大型银行系统,使用DB2都可以高枕无忧。新发布的DB2 6.1版本,管理和调整工具更加优秀和易于使用。DB2可以在Intel体系结构或IBM的S/390大型计算机上运行。如果你所在的行业特别推崇IBM机器,建议你学习IBM DB2。
DB2有两个版本:工作组版和企业版。工作组版每台服务器999美元,每个并发用户249美元。企业版每CPU 12500,不限并发用户。
以Java为中心的数据库-Sybase Adaptive Server Enterprise(ASE)12.0
即将发布的Sybase ASE 12.0直接面向Java程序员。这种以Java为中心的数据库系统将是那些准备在Java平台下构建企业应用的企业的最佳选择。然而,ASE并不是数据库领域的领导者,尽管它比以前的版本改进了很多,支持多CPU和更多并发,并有许多新功能。但是Sybase的风光好像没有了。
值得期待的Informix Centaur
有时候“第一”只是意味着你的对手需要等待更长的时间才能赶上你。这正是成立于1997的Informix所面临的。Informix是首批向关系数据库系统添加多媒体特性的大型数据库供应商之一。但现在,IBM、Oracle、Sybase都跨越了这个概念。因此,Informix必须寻求新的支持,以区别于其他数据库供应商。这是Informix Centaur的目标。Informix Centaur结合了Informix Dynamic Server 7.3的对象关系数据库和Informix Universal Data Option 9.1,旨在更好的适应性和多媒体支持。具体情况如何,我们拭目以待!
DBA的工资
有许多因素会影响DBA的薪水:
DBA水平由你的经验和能力、你熟悉的数据库系统、你的性格特点和潜力决定。下表给出了国内DBA工作人员的基本工资,并说明了DAB水平和你所熟悉的数据库系统对DBA工资的影响。当然,这只是我个人的认识,只能在一定程度上代表行业的平均水平。
初级DBA年薪(万元)、中级DBA年薪(万元)、高级DBA年薪(万元)Oracle 48 11微软SQL Server 358 IBM db 248 10 Sybase 3.568 Informix 47 10注:每年按照13个月计算。