虽然这是一篇国外的99年初的翻译文章,但很多内容同样适合今天的DBA.

       近年来,我一直在和数据库管理员打交道,并直接面试了很多DBA职位。本文想概括一下IT行业对DBA的要求,以及国内DBA的新资现状。可以肯定地说,做一个高级DBA是很不错的职业。如果你打算成为一名DBA,那么希望本文起到抛砖引玉的作用。

什么是DBA

  数据库管理员,英文是Database Administrator,简称DBA。这个职位对不同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大公司相比,DBA的职责来得更加宽泛一些。一个公司,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库(有多少不涉及数据库的应用软件呢?数据库是商业的灵魂和大脑啊),就需要确定是否雇佣一个或几个DBA。知道DBA这个职位有哪些要求,对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要的。下面我列出了DBA的一些职责:


  1. 安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应用程序工具。
  2. 数据库设计系统存储方案,并制定未来的存储需求计划。
  3. 一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。
  4. 一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。
  5. 根据开发人员的反馈信息,必要的时候,修改数据库的结构。
  6. 登记数据库的用户,维护数据库的安全性。
  7. 保证数据库的使用符合知识产权相关法规。
  8. 控制和监控用户对数据库的存取访问。
  9. 监控和优化数据库的性能。
  10. 制定数据库备份计划,灾难出现时对数据库信息进行恢复
  11. 维护适当介质上的存档或者备份数据
  12. 备份和恢复数据库
  13. 联系数据库系统的生产厂商,跟踪技术信息。

DBA的个性特点

  很多时候管理人员都忽视了DBA的个性特点,他们只关注DBA的技术能力。实际上,上面谈到的每个职责都意味着:DBA需要跟各种人员打交道,这些人员可能是销售商、用户、开发人员或者管理人员。这说明:DBA必须具有下面的个性特点:

  1. 自信心
  2. 好奇心
  3. 坚韧的意志力
  4. 老练
  5. 自我驱动
  6. 注意细节

为什么这些个性特点很重要呢?

  我就有几个缺乏自信心的部下,他们反复问我一些事无巨细的问题,他们没有信心哪怕做最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说可能问题不太大,但对于那些高级DBA来说,如果他们缺乏自信心,他们又可以依赖谁帮他们决策呢?在DBA的面试中,即使你不能回答某个技术问题,你也要表现出足够的自信心。最致命的不是不知道问题的答案,而是不知道从哪儿得到答案。

  几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说,好奇心是必需的。没有好奇心和求知欲的DBA总是等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统,并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强,从而改进自己的工作。应试时一个必然问及的问题是:你手头有哪些参考资料?你如何使用它们?毫无疑问,如果你只回答了数据库的文档,或者你甚至没有读过他们,你的"股票市值"将大大下降。好奇心会驱使DBA们理解数据字典(Data Dictionary)、管理工具(Tools)或者其他支持包(Packages)。

  DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔打的个性特点。我常常在一些讨论组或者论坛上看到DBA们提出的问题,这些问题往往是提问者自己可以解决的,如果他们具有坚韧的个性特点,并努力寻求问题的答案。

  自我驱动对每个人都是很重要的,对DBA尤其如此。DBA要能想办法使问题出现,而不是等待问题的出现。自驱力强的DBA常常设法取得或者自己写一些必要的脚本(Script)来监控包括数据表大小(Table Size)、表空间使用(Tablespace Usage)等项目,这些项目如果被忽视,他们将遇到麻烦。应试的时候DBA们常常被问及在PL/SQL、SQL或者SQL*PLUS方面的经验,这些问题将把你从从来没有编写过自己需要的脚本的那些DBA们区分开。

  不用说和用户,就是和程序员和管理人员打交道,也需要你足够老练。一个一点不会处事的DBA不会为你做什么好事,只会在你的部门点燃敌对情绪的烈火。老练是这样一种能力,你劝告某个人到地府去,哈哈,最后这个人怀着渴望的心情去了。很多时候,开发者、管理者、用户,他们会提出毫无道理的需求,DBA们需要老练地引导、修正它们的要求,说服他们。在应试时,你的应对就很能说明你是否老练。
最后说说注意细节,这种性格倾向非常重要。注意细节的DBA们衣着整洁,有自己的日程安排,在应试前对应聘的单位做过调查。注意细节的DBA们深入了解数据库的内核,并能理解视图、表之间的关系。

DBA的等级

  DBA的等级并不是很严格的。按照对数据库的掌握情况,我简单地分成三个等级:初级Primary、中级Intermediate和高级Senior。

  初级DBA又称为DBBS,是英文Database Baby Sitter的缩写。初级DBA常常是兼职的,他们往往同时是程序员或者兼任其他的工作。初级DBA往往把个人简历写得很棒,参与了很多和数据库有关的项目或工作。但是,这些项目或者工作往往是:第三方软件供应商已经安装并配置了数据库,他们只做一些监控的工作。他们能处理一些简单的问题,但大多数时候他们向应用软件供应商求救。初级DBA更喜欢图形化的数据库管理或者监控工具,他们喜欢Access这样的桌面数据库简单易用,并把这些小型数据库的经验简单地应用到大型数据库相关的工作中。

  初级DBA是最好区分的。而中级DBA和高级DBA就不太好区分。他们的差别在于经验的不同和个性特点、能力方面的差异。中级DBA比较多,他们可以胜任高级DBA的大部分工作,包括:

  1. 数据库安装
  2. 数据库配置和管理
  3. 权限设置和安全管理
  4. 监控和性能调节
  5. 备份和恢复
  6. 解决一般的问题

  中级DBA往往从业一年左右,熟悉某种操作系统环境下的数据库。因为对中级DBA来讲,Windows NT和Unix是有很大差别的。中级DBA对SQL比较熟悉,他们自己购买了几本数据库方面的书籍,并深入钻研。中级DBA往往同时兼任数据库程序员,他们的工作对性能、稳定性、安全性的追求基本上不是很高,往往配合高级DBA做一些例行工作。

  高级DBA在国内是非常少的。他们购买了太多的数据库方面的英文资料,也许是托朋友从Amazon买的。相对于他们的报酬来讲,买书的钱是很少的一个比例。高级DBA一般都熟悉很多种操作平台下的几种大型数据库。他们知道各种不同数据库在不同环境下的优势和劣势,并能在数据库平台和数据库环境的选择方面做出决策。他们一般通晓系统架构和数据库设计,并能对数据库进行各种级别的优化。高级DBA一般都配有助手,他们更偏向做决策和计划。高级DBA往往在银行业、保险业、在线交易等对稳定性、安全性、性能都要求比较高的关键业务处理领域大显身手。

  很多时候,是否取得数据库专家认证证书并不是很重要。我知道很多数据库厂商的培训只要你去了都会获得证书。有很多的公司提供商业化的培训,他们的服务质量也有好有劣。所以证书并不是特别地有意义。

几种流行的数据库系统

  最"容易"的数据库系统-Microsoft SQL Server

  如果你打算做一个DBA,建议你选择那些现在比较流行的数据库系统。这意味着你将有更多的就业机会、交流和培训机会,而且,流行自有流行的理由,你可以因此省心很多。当然,就业竞争压力也比较大。一般的入门者选择Microsoft SQL Server,这是非常适合中小型企业的数据库系统,熟悉Access的读者很容易就能初步使用Microsoft SQL Server,成为一个DBBS。 J
Microsoft SQL Server 7.0的报价,5用户版1399美金,增加用户时,127美金每用户。

  最"难"的数据库-无冕之王Oracle

  如果你有机会接触到Oracle,那可是个好机会。Oracle是目前最看好的数据库厂商,由于其强大的功能和可配置、可管理能力,Oracle DBA的薪资一般比其他数据库管理员的薪资要高。而且,Oracle在大中型企业的关键应用也更加普遍了。Oracle可以运行在Windows NT、Sun Solaris、Linux等平台下。很多情况下要求你不仅仅熟悉NT,还要你熟悉Unix;而且Oracle不太友善的界面和成箱的Oracle产品资料可能也是一个障碍。
  Oracle 8i标准版的报价,如果运行在Windows NT,附带JServer和interMedia,支持5个并发用户,报价是3925美金每CPU。增加并发用户时,785美金每用户。增加附加的命名用户时,392.5美金每用户。

  数据库系统的贵族-IBM UDB/DB2

  作为30年数据库研究的成果,IBM DB2确实称得上"数据库系统的贵族"。不管是小型商业系统,还是大的银行系统,用DB2都是可以高枕无忧的。最近推出的新版DB2 6.1, 管理和调节工具更加卓越和便于使用。DB2 可以运行在Intel架构上,也可以运行在IBM的S/390大型计算机上。如果你所在的行业对IBM的机器特别地称道,建议你学习IBM DB2。

  DB2有两种版本:工作组版和企业版。工作组版999美元每服务器,外加249美元每个并发用户。而企业版是12500美元每个CPU,不限并发用户数量。

  以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的薪资:

  1. 你的经验和能力所决定的DBA等级
  2. 你所熟悉的数据库系统
  3. 你的个性特点和潜力

  下面的表说明了国内DBA人员的基本薪资状况,并说明了DAB等级和你所熟悉的数据库系统怎样影响到DBA的薪资。当然,这只是我个人掌握的情况,只能在一定程度上代表行业的平均水平。


注:每年按13个月计算。表内数字为平均年薪。


下面不是全部列表,但是包括了DBA的典型职责:
· 把监视数据库实例当作每日必做工作以保证其可用性。解决不可用的问题。
· 收集系统统计和性能信息以便定向和配置分析。
· 配置和调整数据库实例以便在应用程序特定要求下达到最佳性能。
· 分析和管理数据库安全性。控制和监视用户对数据库的访问。必要时审计数据库的使用。
· 监视备份程序。必要时提供恢复。测试备份与恢复程序。
· 升级RDBMS软件并且在必要时使用补丁。必要时升级或者迁移数据库实例。
· 通过数据库相关动作来支持应用程序开发人员。
· 跟随数据库趋向和技术。当可应用时使用新技术。安装,测试和评估Oracle新的相关产品。
· 执行存储和物理设计。均衡设计问题以完成性能优化。
· 创建,配置和设计信的数据库实例。
· 诊断,故障检测和解决任何数据库相关问题。必要时联系Oracle支持人员以便使问题得到较好的

解决。
· 确保Oracle网络软件(SQL*Net, Net8, Names, OiD)配置和运行的很好。
· 与系统管理员(Unix & NT)一起工作以保证Oracle相关事务得到很好的处理。
· 为有效的,定期的维护数据库创建任何必要的脚本。

第一份DBA工作现在成了恶性循环的境遇。假如我没有任何经验,我怎样才能得到DBA的工作呢?我

没有工作的话又怎么能得到DBA经验呢?这是要战胜的最困难的障碍。最困难的部分是获得第一个

DBA工作。这部分的剩下部分将针对实现你第一个DBA工作的目标给你一些建议。

提示#1:接受教育。--尽可能多的学习有关数据库的知识。这很可能将占用你正常工作以外的部分时

间也精力。参加本地大学举办的数据库培训班。许多培训公司都会举办数据库管理员的培训班。假

如你的老板不资助你的学习,那么你可能不得不自己支付这笔费用。许多DBA职业要求至少为计算机

科学或相关专业本科以上学历,因此你必须至少有那样的文凭。

提示#2:锻炼成为DBA。--许多数据库供应商都允许你下载他们数据库系统的测试版或评估版。下载

一份并且在自己的个人电脑上安装软件。练习使用数据库。故意破坏数据库并且尝试修复它。尝试

着履行你所能想到的尽可能多的DBA职责。测试和磨练你在自己的测试平台上的技能这样你就可以证

明你的数据库管理能力。

提示#3:获得认证。--许多数据库提供商都提供自己的数据库产品的认证。许多公司现在都把认证看

作是一种标准。需要记住的一件事是仅获得认证是不够的。通过DBA认证测试并不意味着你知道如何

管理一个数据库。它只是告诉你以后可能的老板,现在你拥有了一定的技术。它还告诉你的老板你

对DBA工作的态度是很认真的。我看到许多人抱怨他们已经得到了认证但是没有经验,却仍然不能得

到第一份DBA工作。认证本身并不能使你得到工作,但它是无害的。即使没有其他的,在你进行认证

的时候你也已经学到了许多知识。只是不要依赖认证来给你带来你要找的工作。你需要的比这还要

多。但它会在最后帮助你。

提示#4:利用你现有的技能。--许多DBA具有系统管理员背景。其他的有应用程序开发背景。假如可

能,查看你能否利用现有的技能来得到工作。现在的目标就是为你和你的老板创造一个双赢的局面

。例如,让我们假设你已经是一名系统管理员而想进入DBA领域。也许你会找到一份工作,这份工作

一部分时间里可以用到你的系统管理技能,并且在剩下的时间里可以使你涉及到数据库管理领域。

假如你已经是一名某个产品平台上的DBA但你希望转到其他产品平台,那么看看你能否找到一份同时

接触两个产品平台的工作。这样,公司和你都得到了想要的。在你定向到了DBA工作后,你可以试着

得到一个能让你全职作它的职位,也许还可以在同一个公司中。

提示#5:利用现在的机会。--有时候,一个人进入DBA领域仅仅需要的是正确的地方和正确的时机。

假如你现在的老板有一个机会让你进行任何数据库的项目,抓住这个机会!任何数据库经验就比没

有数据库经验要好。让你的管理者知道你十分积极的在寻找任何可能的数据库机会。他们就有可能

在下次机会到来的时候想到你。进行这些数据库项目以及看到你要成为一个DBA的渴望以后,他们可

能会决定培训你,提拔你。许多许多人都是以这种方式获得他的第一个DBA工作,在进行了一些数据

库相关的项目后不知不觉的成为一名较低级的DBA。通常当一名DBA离开公司后,公司将在内部寻找

一个候选人,假如他们认为这名候选人是可训练的话。

提示#6:寻找较低级的DBA职位。--假如你只是为了一个较低级的DBA工作,看到DBA职位的需求描述

说他们正在寻找高级DBA或者其他的。所以,让我们严谨一些。你并没有一个高级方面的经验。我已

经讨论过了对于这样的职位为什么公司不会考虑你。但是他们会在低级的职位上考虑你。低级的DBA

在高级DBA的指导下完成工作。他们摸索窍门。一般来说,高级DBA对数据库承担责任,同时也获得

所有的荣誉。但是不要焦急。随着你的事业发展,你将会有越来越多的责任和得到越来越多的信任

。因为你没有任何经验,你应该从这里开始启航。

我刚得到我的第一份工作!现在该怎样?

祝贺你!你现在是DBA俱乐部的正式成员了!对于这份梦寐以求的令人激动的职业,你准备好了么?

你的工作才刚开始并且你在学习上已经落在后面。你将会发现要成为一名高效的数据库管理员有大

量的知识你必须掌握。你的第一年或前两年将花费比以前更多的时间来学习。假如你发现学习知识

的数量使你大脑超负荷,那么休息一下,歇口气,然后再回到学习中去。为了帮助你继续走下去,

你可以按照下面的方法进行:

步骤#1: 关系型数据库理论 –这部分我假设你将管理的数据库是一个“关系型”数据库。其他数据

库模型也存在,但是关系型模式是近二十年工业上占统治地位的一种数据库模式。假如你的数据库

系统是其他的模式,那么学习它的理论。相关数据库理论是十分重要的。它是其他一切的基础。我

也看到许多跳到数据库管理职位的人从不想去学习纯粹的关系型数据库理论。不可避免的,在他们

的事业中对理论基础的匮乏作为缺点暴露了出来。假如你对关系型数据库理论理解得很好,那么你

将非常容易的在任何平台的关系型数据库管理系统(RDBMS)中转变。我使用Oracle数据库,或者

IBM的DB2,或者微软的SQL Server是无关紧要的。他们都是关系型数据库系统。他们在最底层都在

做着相同的事情。区别在于他们怎样去做相同的事情。纯粹的关系型数据库理论对于较低级的DBA来

说并非必需的。但是假如你想要超越低级DBA的水平它就是十分重要的。许多大学的教科书都很好的

包含了关系型数据库的理论。其中一本被广泛使用的教科书就是由Elmasri and Navathe编写的数据

库系统基础,Bejamin/Cummings Press。

步骤#2: 彻底的学习查询语言 –数据库都有语言让你能够从数据库中得到数据,把数据放到数据库

中,以及修改数据库中的数据。对于关系型数据库而言,这种语言就是结构化查询语言(SQL)。这

门语言是你与数据库接触的工具。不能让这个工具成为以后学习的障碍,这一点很重要。在你的测

试数据库中练习不同的SQL语句直到他们变成了你的习惯。这方面的一本非常好的书叫做Oracle 9i

完全参考(Oracle 9i The Complete Reference)由Loney 和Koch编写,Oracle Press。每一名

Oracle DBA都应该在他事业的早期阅读这本书。Oracle 9i参考手册(Oracle 9i SQL Reference

manual)是另一个很重要的知识来源。在他们的技术网站TechNet上(http://technet.oracle.com

)你可以访...t上有一个账号。

步骤#3: 开始学习基本的数据库管理工作 –这难道不是你最开始在这里的原因?为什么它在列表的

第三位?我们尝试着建造一个知识的金字塔,我强烈的感觉到一个人需要知道关系型数据库理论和

SQL,并且在你学习如何进行基本的数据库管理工作时把他们当作工具来使用。这些工作包括启动和

关闭数据库,备份和恢复数据库,以及创建/删除/修改数据库对象。对于Oracle数据库管理而言,

在市面上有大量的书籍可以给你所期望的一个很好的体会。这本书是Oracle 9i DBA手册(Oracle

9i DBA Handbook by Loney on Oracle Press)。我知道的大多数DBA都在他们事业的早期不只一遍

的阅读过这本书。这里,你应该同时阅读和理解Oracle 9i 概念指导,Oracle 9i管理员指导,以及

Oracle 9i备份与恢复指导(Oracle 9i Concepts Guide, the Oracle 9i Administrator’s

Guide, and the Oracle 9i Backup and Recovery Guide)都来自Oracle文档。

步骤#4: 阅读,阅读,再阅读 –由于你才刚开始你的DBA职业生涯,因此你正在开始为你的技能奠

定基础。这需要一段很长的时间去形成,吸收和领会所有你将学到的知识。毫无疑问的,比你资深

的DBA由许多工作要做,因此他们可能不会总是腾出大量时间辅导你的学习。你不得不靠自己学习很

多东西。这就是阅读的目的。市面上有许多书籍可以解答许多数据库相关的话题。Oracle Press是

Oracle公司的官方出版社,有大量的Oracle相关书籍。同时也有其他的出版社,如Wrox Press 和 O

’Reilly Press。你也可以找到Oracle文档来阅读。并且还有许多网站和新闻组。尽可能多的读书

使你能够继续下去。还有,不只一遍的阅读它们可以使你吸收你第一次阅读时错过的内容。

步骤#5: 创建测试案例 –我经常看到初学者问一些很基础的问题,其实假如他们花一些时间来考虑

,这些问题都是很容易解答的。毫无疑问的,在你开始学习Oracle的时候你会有许多的问题。看看

这些问题你能不能自己回答出来。例如,我又一次被问到能不能向有唯一性约束的列中插入空值。

最开始,这看上去也许不是很容易回答的问题。但它却是非常容易去试验的!只需要创建一个简单

的表。在其中的一列,假如唯一性约束。尝试着在该列插入一个空值。有效么?你应该能够非常容

易的回答出这个问题了。那么,为什么要创建这些案例呢?一个原因是这样做可以提高你解决问题

的能力。创建这些案例需要的技能就是解决问题用到的技能。解决问题的技能将会对你的DBA事业有

很大的帮助。另一个原因是随着你的事业的发展,你将经常需要创建更复杂的测试案例以便保证数

据库和应用程序的成功。在将来,甚至简单的测试案例也可以组成更复杂的数据库和应用程序分解

步骤#6: 找一个良师 –一个良师能够为你的DBA生涯(或者其它类似的职业)引领方向。他们能够

给你指示,回答问题以及在你的DBA的成长过程中帮助你节约一些时间。但愿这篇文章能够在你事业

发展的一段时间内起到良师益友的作用。假如你与一名资深的DBA共同工作,那么那个人应该有责任

为你的事业进行有益的指导。你也可以同时选择其他的人指导你。

步骤#7: 参加本地用户群 –许多跨国家的城市有本地用户群,他们定期聚会讨论数据库相关的话题

。假如可能,参加其中一个本地用户群。这将给你一个与他人相互交流的很好的方法。


我如何能够从一名DBA初学者变为一个具有中级水平的DBA?

你已经成为DBA一段时间了,你现在希望你的技术水平提高一阶么?下一步该怎么做?首先,往回看

前面的部分,确认你已经完成了所有的步骤。彻底理解SQL语言是十分重要的。理解关系型数据库理

论和掌握基本的数据库管理任务也是非常重要的。到如今,你应该阅读文档和其他书籍到已经郁闷

了。假如没有,那么你还没准备好继续深造,增长你的DBA的技术水平。假如你已经准备好继续了,

我已为你的继续深造准备了一些方法。

步骤#1: 学习操作系统和你的服务器硬件 – 正如我前面所说,数据库存在于操作系统和服务器硬

件之上。理解这些组成部分如何工作是很必要的。你应该知道如何与特殊的操作系统相合。你如何

删除或者编辑文件?假如你的操作系统是Unix,你应该掌握命令行以及Unix命令如何辅助你工作。

对于运行在Windows或其他操作系统上而言也是一样的。你同时需要对服务器的硬件有一定的了解。

物理内存和虚拟内存有什么区别?RAID是什么以及不同的级别是如何产生影响的?为什么数据库喜

欢更多的物理硬盘而非一个大硬盘卷?你需要知道这些事情以便你能够容易的与系统管理员进行如

何配置好你的服务器以便使它能够充分的支持数据库方面的交谈。

步骤#2: 学习应用程序设计因为它与数据库相关 – 如前面所述,数据库存在于操作系统与数据库

应用程序之间。你真的需要这两者。SQL语言是如何帮助创建好的应用程序的?绑定变量是什么并且

为什么他们很重要?Tom Kyte 写了一本非常好的书,在Oracle应用程序设计上给出了很好的建议。

他的Expert One-on-one Oracle书可在 Wrox Press找到。我强烈推荐阅读此书。他详细的叙述了那

些能够生成和破坏Oracle应用程序的东西。你需要知道这些,因为你的应用程序开发人员希望从你

这里得到指导和数据库知识。学习任何与应用程序设计有关的知识。也许参加一个关于软件工程,

操作系统或数据结构的课程班会有好处。

步骤#4: 取得认证 – 也许你的工作并不需要,但是取得认证一定对你有益。作为DBA的每一天里,

你学到了许多新的和令人激动的事情。也许在你职业生涯的这段时间里,有几天你没学到任何新的

东西。但你仍然有很多要学习。成为一名OCP(Oracle Certified Professional) DBA要求你必须

已经学到了数据库管理所有方面的基础。我发现在OCP考试的学习过程中,我学到了在我工作中从未

接触过的东西。一次我学到了我从未碰到过的一个特殊课题,在后来的日子里我就能够使用那个知

识解决问题。假如我从为在OCP考试中学倒它,那么我永远也不会用那种特殊的方法去解决问题。这

已经一次次的发生在我的面前。有的人可能会说认证实际上真的不值得。我要说它只会对你有益无

害。所以,去取得认证吧!

步骤#5: 获得一个资源库 – 在前面的部分中,我指出每个DBA都应该在Technet上有个账号。这是

你其中一个主要资源。但是同时还有许多其他资源。很多人共享他们的Oracle知识。假如你还没有

开始,你应该用网络浏览器去搜索并收集很多Oracle资源。愿意的话,你可以从访问我的网站

(http://www.peasland.net)开始。下面是一些Oracle DBA必须了解得网站列表:
ü Ask Tom – http://asktom.oracle.comü Jonathan Lewis web site - http://www.jlcomp.demon.co.uk/ü Ixora (Steve Adams) – http://www.ixora.com.auü Orapub – http://www.orapub.comü Metalink (Oracle支持网站) – http://metalink.oracle.com

还有许多其它的好网站。

步骤#6: 开始在不同的新闻组和论坛上交流 – 也许你已经发现了他们,但假如现在你还没有那么

是时候去开始了。有许多的新闻组和论坛可以回答你的任何Oracle问题。在Oracle群落里还有许多

高手愿意和你共享他们的知识。你所要做的就是提问。下面是一个列表包含了可以开始交流的最好

的因特网团体:

ü Usenet newsgroups – comp.databases.oracle.server 和 comp.databases.oracle.misc 是两

个可以交流的非常著名的世界性的新闻组。他们拥有大量的针对Oracle问题的交流卷宗。观看这些

组的最好的方法式使用新闻广播员。但是假如你想通过基于web的方式访问,也可以通过Google搜索

引擎搜索它。 (http://groups.google.com/groups?hl=...atabases.oracle)
ü Quest Pipelines – 当他们在最开始还属于软件提供商RevealNet的时候,被称为the RevealNet

Pipelines。现在,Quest购买了RevealNet 并且拥有Pipelines 。因为Pipelines是中等的,所以这

些是我最喜欢的。你可以在这里找到Pipelines (http://www.quest-pipelines.com/index.asp)。

观察别人是如何经历考验和磨难的是一件好事。假如你有问题,可以自由的在群里提出来。假如你

要提出问题,通常应该包括一些信息,比如你的Oracle版本和Oracle运行的平台。这些将会得到有

很大的差别的答案。假如你忘记了,会有人提醒你!甚至你不用提问也可以从其他人的答案中学到

许多知识。我已经记不得多少次我之所以能够解决问题完全是因为我记得其他人在新闻组里问过相

同的问题。


我如何从一名具有中级水平的DBA转变为一名高级DBA?

好,作为DBA你已经坚持不懈的努力了很长时间。你感到自己已经准备好往前再走一步。成为一名高

级DBA需要什么?下面的部分将帮助你走下去。

步骤#1: 阅读所有的文档 – Oracle文档通常并不是很容易阅读的。无数次,你翻阅文档只是为了

要弄清整件事情。假如文档是最好的东西,那么那些站在你的书架里的Oracle书籍就不会有市场。

但是文档确实包含了一些无法在任何其他地方找到的信息。例如,你无法找到每一个专门的

INIT.ORA参数或V$视图的详细说明。书本上也许会涉及一部分,但是Oracle文档却包含它们所有。

我遇到过一个非常厉害的高级DBA,他没有从头至尾的阅读过Oracle文档。这不是偶然的。Oracle文

档是必须阅读的。也许到现在为止你已经读过Oracle概念指导十二遍了。但是当Oracle 10i发布了

,你还要再次阅读。任何有关10i的新概念将在文档里记录。假如你真的想更上一层,那么,去阅读

那些文档。不要逃避它。

步骤#2: 成为一名专家 – Oracle数据库是一个非常复杂的东西。为了更上一层,你必须精通产品

的许多组成部分。以备份与恢复开始。成为一名备份与恢复的专家。故意的破坏数据库然后察看如

何恢复它。尝试以任何可能的方式破坏数据库然后查看还有没有可能恢复。你将彻底的理解备份与

恢复的概念。在你成为了备份与恢复的专家以后,再去成为其他领域的专家。你会有无穷无尽的题

目要去掌握。在你整个职业生涯中都保持如此。但是请记住,无论你有多么专业,在某些领域,某

些人会在某些方面知道的比你多。不要带个人情绪。只是尽可能多的从那个人那里学到知识。

Route #3: 积极参加新闻组,论坛和用户组 – 在前面,我提过为什么不同的新闻组和论坛是学习

新知识的很好的地方。现在轮到你进行下一步并且去回答任何你能够回答的问题。你将会惊讶于在

这过程中你能学到那么多!

Route #4: 写白皮书并且展示它们 – 这与前面提到的方法类似。首先,共享你拥有的知识是很重

要的。假如你的职业生涯已经走到这一步,那么从某种意义上讲,是离不开他人的贡献的。所以,

现在是你为他人奉献的时候了。第二,当你企图共享你的信息的时候会有令人惊异的事情发生。在

你要用清楚的,简练的语言表述问题以便其他人能够使用时,那些信息在你的头脑里经过了一个令

人瞠目的过程。这个过程使你巩固了知识,这是无法通过其它方法进行的。所以在白皮书中共享那

些信息,讨论会,以及新闻组和论坛都是你学习和使你的能力更上一层的非常好的方法。顺着这条

路,你应该作两件事。第一,认识到你将会犯错误。其他人将会很高兴的指出那些错误,有时在某

种意义上那并不是很好。不要企图掩藏你的错误。承认它们并从它们那里学习。第二,学会说你不

知道答案而不是企图以欺骗的方式通过。人们早晚会知道你在企图蒙蔽他们。简单的告诉他们现在

你对答案并不肯定,但你会在查到答案后回来告诉他们。假如你时刻谨记这两件事,你就不会违背

你的诚实而且你将成长为一名职业的IT人。

步骤#5: 成为解决Oracle问题的专家– 高级DBA通常都是被看作是解决复杂的Oracle问题的人。你

将会用到你所有的技术来解决许多问题,这些技术都是你的职业生涯中积累下来的。我前面提到的

任何事都将会在解决问题的过程中用到;文档,书籍,新闻组,测试案例,和其它DBA都将辅助你解

决问题。

步骤#6: 成为性能调优的专家– 高级DBA通常都是被看作是调整数据库和应用程序性能的人。假如

你是高级DBA但是你却不能分析性能瓶颈,那么你的公司将会到别处寻找这些服务。

步骤#7: 成为承载能力计划的专家– 高级DBA通常都是被看作是根据数据增长量和交易增长来计划

数据库承载能力的人。高级DBA需要在影响应用程序性能以前发现系统瓶颈。例如,DBA应该知道在

数据库将可用的磁盘空间用完以前预置更多的磁盘空间。不密切关注承载能力计划将会导致生产数

据库宕机。

步骤#8: 密切关注新的技术– 高级DBA应该对IT界的关数据库技术的未来有好的建议。有什么可用

的技术可以帮助数据库?例如,学习存储领域网的优缺点以及如何把它们应用到数据库系统。有什

么技术在不远的将来可以用,哪些能够帮助我们?例如,写这篇文章的时候,linux操作系统正在变

得越来越流行。Lunix会给你的数据库操作系统平台带来些什么?它能为你的公司工作么?

DBA的薪资

有很多因素影响到你作为DBA的薪资:

你的经验和能力所决定的DBA等级 你所熟悉的数据库系统 你的个性特点和潜力


DBA等级数据库系统

初级DBA年薪(万元)

中级DBA年薪(万元)

高级DBA年薪(万元)

Oracle

4

8

11

Microsoft SQL Server

3

5

8

IBM DB2

4

8

10

Sybase

3.5

6

8

Informix

4

7

10