介绍

 

许多年来,我在不同的新闻组上花费了很多时间与那些想知道如何得到数据库管理员( DBA )的工作或者如何成长为一名 DBA IT 人进行交谈,现在他们有了工作。这些年来许多人针对如何达到这个目标提出了不同意见。本文即是那些意见的综合并且能够在如何才能出色的完成 DBA 的工作方面给出好的建议。这篇文章同样对于如何让一名 DBA 变得对老板更有价值。假如你已经是一名 DBA ,那么也许你会希望跳过文章的前几段。

 

我应该成为一名 DBA 么?

 

我曾问过的一个问题是一个人应该从事 DBA 这样的职业么。这个问题并不容易回答,因为它因人而异。有的人有成为一名好 DBA 所需要的天赋。而其他人并不认为能够很容易掌握成为 DBA 的秘诀。 DBA 职业需要掌握一定的技能。而且还需要其他 IT 职业所不必需的要求。因此,为了回答这个问题,我通常给将要成为 DBA 的人描述 DBA 职业所必需的要求。下面的段落中,我都将以问题结尾。在继续下一段以前请花一些时间考虑并且回答这些问题。

 

许多人因为许多原因而立志要成为 DBA 。其中一个主要原因是薪水。 DBA IT 业中薪水最高的职业之一。其他人想成为 DBA 是因为喜欢赞扬 DBA 是受到的荣誉,或者因为他看上去很酷!我个人认为,成为 DBA 是很值得的。它是一个很有意思,令人兴奋的职业。那么,你把 DBA 作为一个可能的职业选择的原因是什么呢?

 

除非你已经提前准备好了,否则你可能会发现从事 DBA 职业充满了挫折和令人头痛。一个数据库存在于操作系统和最终用户应用程序之间。同样地, DBA 必须非常精通他的数据库所在的操作系统。 DBA 并不一定需要知道所有有关操作系统的知识,但是他知道得越多越好。数据库与操作系统联系非常紧密。理解这种关联是十分必要的。 DBA 还需要知道服务器硬件以及它如何影响与帮助数据库。同时, DBA 必须理解应用软件。 DBA 可能会被要求帮助开发人员创建可靠,健全的数据库应用程序。还有,最重要的也是最明显的, DBA 必须十分彻底的理解数据库引擎,它是如何工作的,所有的引擎是如何组合在一起的,以及如何影响数据库引擎向最终用户和应用程序传送数据的能力。我见过的最好的 DBA 有非常深刻的理解而且不仅仅在数据库本身。他们知道一些系统管理与应用开发。好多时候他们在成为 DBA 之前有其中一个或两个背景。无论如何,成为一名合格的而不是出色的 DBA 也需要许多背景知识。你是否已经做好准备开始学习直到你感到已经无法再学下去了?

 

许多和我交谈过的,在开始 DBA 职业时遇到困难的人,在尝试着吸收大量 DBA 所需了解的信息时实际上都会有一些问题。毕竟系统管理员是全职学习操作系统的细节。应用程序开发人员全职学习如何编写好的程序。 DBA 不仅要非常了解这两种不同的工作,而且还需要花费更多的时间去理解数据库的体系结构,以及理解每一样东西的每一块是如何组合在一起的!听起来是不是很让人畏缩?有许多人失败后这样想,并且把 DBA 工作看作一项非常困难的事情。也有那些传播和理解所有这些信息,并且使用这些信息做出好的,听起来具有技术性的决定的人。正如我以前是一名 DBA 时喜欢说的,所有这些对我来说看上去像一个大谜团。把这些所有的很好的组合在一起就是挑战。你是哪一种人?

 

许多 DBA 是随时侯命的。他们会在白天或晚上的所有时间接到呼叫去解决他们的数据库出现的致命问题。数据库是商业信息技术基础组织的必不可少的组成部分。没有数据,就没有必要拥有一个计算机系统。数据推动商业。假如 amazon.com 的网站不能在数据库中搜索产品并且假如没有人能够为他们的产品下订单,那么它会变成什么样?它就不会在商业中存在很久。当数据库 down 掉,即使只是很短的时间,公司也会损失重大。基于这个原因, DBA 到达现场后必须尽可能迅速的解决问题。许多公司有自己的 DBA 团队以便可以轮流待命。这些 DBA 24x7 小时的维持数据库应用程序。假如工作需要的话,你准备好随时候命了么?

 

一些 DBA 的职责包括为软件打补丁或者对数据库做些改变。通常,这些操作不能在公司职员工作的时候做,因为此时数据库必须运行以便他们能够工作。这意味着 DBA 经常不得不在很早或者深夜甚至周末,总之,在正常工作时间以外来完成工作。你准备好在非正常时间工作,或者你在找一个朝九晚五的工作?

 

DBA 而言,需要掌握的一个重要内容就是通常被称为“软技术”的东西。 DBA 需要在团队中很好的工作,通常团队是在变化的,如系统管理员,网络管理员,应用程序开发人员,项目经理和其他人。 DBA 要能够用流利的英语解释复杂的技术概念,让团队中其他人明白。 DBA 还要能够在数据库相关问题上指挥团队队员。你的软技术怎么样?

 

下面不是全部列表,但是包括了 DBA 的典型职责:

·         把监视数据库实例当作每日必做工作以保证其可用性。解决不可用的问题。

·         收集系统统计和性能信息以便定向和配置分析。

·         配置和调整数据库实例以便在应用程序特定要求下达到最佳性能。

·         分析和管理数据库安全性。控制和监视用户对数据库的访问。必要时审计数据库的使用。

·         监视备份程序。必要时提供恢复。测试备份与恢复程序。

·         升级 RDBMS 软件并且在必要时使用补丁。必要时升级或者迁移数据库实例。

·         通过数据库相关动作来支持应用程序开发人员。

·         跟随数据库趋向和技术。当可应用时使用新技术。安装,测试和评估 Oracle 新的相关产品。

·         执行存储和物理设计。均衡设计问题以完成性能优化。

·         创建,配置和设计信的数据库实例。

·         诊断,故障检测和解决任何数据库相关问题。必要时联系 Oracle 支持人员以便使问题得到较好的解决。

·         确保 Oracle 网络软件( SQL*Net, Net8, Names, OiD )配置和运行的很好。

·         与系统管理员( Unix & NT )一起工作以保证 Oracle 相关事务得到很好的处理。

·         为有效的,定期的维护数据库创建任何必要的脚本。

 

前面各段的问题是为了使你考虑一名 DBA 该做些什么,帮助你决定这是不是适合你的职业。我并非意味着假如你的目标是成为 DBA 这些会阻止你。我只是尝试着展现一些事实。我看到过一些 DBA 一旦被实际工作打击了就一蹶不振。他们花费时间,精力和一些金钱获得了他们的第一份 DBA 工作。我个人认为这个职业非常有价值。而且我无法想像现在做任何其他的会怎样。所以,这一段帮助你决定这是不是你希望从事的。假如它是,那么尽你所有去得到它!

 

 

我怎样得到第一份 DBA 工作?

你已经阅读了前面的段落并且认为成为一名 DBA 是一个好的职业。祝贺你!我希望你的职业能变成你想像得那么令人兴奋和有意义。那么,你如何找到第一份 DBA 工作?这个问题我已经听别人问了许多许多遍。

 

90 年代早期,因特网急速发展。它使公司象草一般萌芽。公司蜂拥而至并且开始创建他们在网上的形象。几乎所有这些有网站的公司都需要一个数据库作为 web 应用的后台。不幸的是,当时在该领域却没有那么多 DBA 。在 IT 业, DBA 变得奇缺。那段时间里,得到一份 DBA 工作看上去只要可以拼出 “Oracle” 或者可能只是在大学里接触过一学期的数据库就行。为了使生活变得更好, DBA 的匮乏促使公司付给有潜力的职员很高的薪水。假如你想要成为一名 DBA ,很容易,非常容易。你需要做的就是证明你了解什么是数据库然后工作就会比你预期的更早的出现在你面前。

 

然后因特网的泡沫破灭了。大量投产因特网的公司破产。许多给公司工作的 DBA 重新寻找工作。缺少 DBA 的公司找到一名有 DBA 经验的人比以前容易得多。在 21 世纪初期,由于经济并不十分稳固,因此生活并不容易(至少在美国如此)。公司都勒紧了他们的裤腰带。所有这些转化为更少的工作机会和 DBA 候选人更少的工作空缺。

 

得到第一份 DBA 工作的最艰难的部分是每一个职位都要求有一些工作经验。如果你从公司的角度出发,你就可以理解为什么对 DBA 职位而言经验是必需的。假如他没有一点经验,你会付给这个人很高的工资让他去操作,维护和运行你 IT 基础组织的最大最重要的一部分么?你的公司会付钱给一名没有经验的 DBA 么?并且,在等待他成长起来的过程中可能会损失上百万美元的收入。对大多数公司而言,这些问题的答案肯定是‘不’。所以,没有经验,获得你的第一份 DBA 工作是很困难的。

 

第一份 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 ,但是到最后,他们实际想要雇一名低级的 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 )你可以访问所有的 Oracle 在线文档。你必须注册一个账号,但是它是免费的。每个都应该在 TechNet 上有一个账号。

 

步骤 #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=en&lr=&ie=UTF-8&group=comp.databases.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 IT 人进行交谈,现在他们有了工作。这些年来许多人针对如何达到这个目标提出了不同意见。本文即是那些意见的综合并且能够在如何才能出色的完成 DBA 的工作方面给出好的建议。这篇文章同样对于如何让一名 DBA 变得对老板更有价值。假如你已经是一名 DBA ,那么也许你会希望跳过文章的前几段。

 

我应该成为一名 DBA 么?

 

我曾问过的一个问题是一个人应该从事 DBA 这样的职业么。这个问题并不容易回答,因为它因人而异。有的人有成为一名好 DBA 所需要的天赋。而其他人并不认为能够很容易掌握成为 DBA 的秘诀。 DBA 职业需要掌握一定的技能。而且还需要其他 IT 职业所不必需的要求。因此,为了回答这个问题,我通常给将要成为 DBA 的人描述 DBA 职业所必需的要求。下面的段落中,我都将以问题结尾。在继续下一段以前请花一些时间考虑并且回答这些问题。

 

许多人因为许多原因而立志要成为 DBA 。其中一个主要原因是薪水。 DBA IT 业中薪水最高的职业之一。其他人想成为 DBA 是因为喜欢赞扬 DBA 是受到的荣誉,或者因为他看上去很酷!我个人认为,成为 DBA 是很值得的。它是一个很有意思,令人兴奋的职业。那么,你把 DBA 作为一个可能的职业选择的原因是什么呢?

 

除非你已经提前准备好了,否则你可能会发现从事 DBA 职业充满了挫折和令人头痛。一个数据库存在于操作系统和最终用户应用程序之间。同样地, DBA 必须非常精通他的数据库所在的操作系统。 DBA 并不一定需要知道所有有关操作系统的知识,但是他知道得越多越好。数据库与操作系统联系非常紧密。理解这种关联是十分必要的。 DBA 还需要知道服务器硬件以及它如何影响与帮助数据库。同时, DBA 必须理解应用软件。 DBA 可能会被要求帮助开发人员创建可靠,健全的数据库应用程序。还有,最重要的也是最明显的, DBA 必须十分彻底的理解数据库引擎,它是如何工作的,所有的引擎是如何组合在一起的,以及如何影响数据库引擎向最终用户和应用程序传送数据的能力。我见过的最好的 DBA 有非常深刻的理解而且不仅仅在数据库本身。他们知道一些系统管理与应用开发。好多时候他们在成为 DBA 之前有其中一个或两个背景。无论如何,成为一名合格的而不是出色的 DBA 也需要许多背景知识。你是否已经做好准备开始学习直到你感到已经无法再学下去了?

 

许多和我交谈过的,在开始 DBA 职业时遇到困难的人,在尝试着吸收大量 DBA 所需了解的信息时实际上都会有一些问题。毕竟系统管理员是全职学习操作系统的细节。应用程序开发人员全职学习如何编写好的程序。 DBA 不仅要非常了解这两种不同的工作,而且还需要花费更多的时间去理解数据库的体系结构,以及理解每一样东西的每一块是如何组合在一起的!听起来是不是很让人畏缩?有许多人失败后这样想,并且把 DBA 工作看作一项非常困难的事情。也有那些传播和理解所有这些信息,并且使用这些信息做出好的,听起来具有技术性的决定的人。正如我以前是一名 DBA 时喜欢说的,所有这些对我来说看上去像一个大谜团。把这些所有的很好的组合在一起就是挑战。你是哪一种人?

 

许多 DBA 是随时侯命的。他们会在白天或晚上的所有时间接到呼叫去解决他们的数据库出现的致命问题。数据库是商业信息技术基础组织的必不可少的组成部分。没有数据,就没有必要拥有一个计算机系统。数据推动商业。假如 amazon.com 的网站不能在数据库中搜索产品并且假如没有人能够为他们的产品下订单,那么它会变成什么样?它就不会在商业中存在很久。当数据库 down 掉,即使只是很短的时间,公司也会损失重大。基于这个原因, DBA 到达现场后必须尽可能迅速的解决问题。许多公司有自己的 DBA 团队以便可以轮流待命。这些 DBA 24x7 小时的维持数据库应用程序。假如工作需要的话,你准备好随时候命了么?

 

一些 DBA 的职责包括为软件打补丁或者对数据库做些改变。通常,这些操作不能在公司职员工作的时候做,因为此时数据库必须运行以便他们能够工作。这意味着 DBA 经常不得不在很早或者深夜甚至周末,总之,在正常工作时间以外来完成工作。你准备好在非正常时间工作,或者你在找一个朝九晚五的工作?

 

DBA 而言,需要掌握的一个重要内容就是通常被称为“软技术”的东西。 DBA 需要在团队中很好的工作,通常团队是在变化的,如系统管理员,网络管理员,应用程序开发人员,项目经理和其他人。 DBA 要能够用流利的英语解释复杂的技术概念,让团队中其他人明白。 DBA 还要能够在数据库相关问题上指挥团队队员。你的软技术怎么样?

 

下面不是全部列表,但是包括了 DBA 的典型职责:

·         把监视数据库实例当作每日必做工作以保证其可用性。解决不可用的问题。

·         收集系统统计和性能信息以便定向和配置分析。

·         配置和调整数据库实例以便在应用程序特定要求下达到最佳性能。

·         分析和管理数据库安全性。控制和监视用户对数据库的访问。必要时审计数据库的使用。

·         监视备份程序。必要时提供恢复。测试备份与恢复程序。

·         升级 RDBMS 软件并且在必要时使用补丁。必要时升级或者迁移数据库实例。

·         通过数据库相关动作来支持应用程序开发人员。

·         跟随数据库趋向和技术。当可应用时使用新技术。安装,测试和评估 Oracle 新的相关产品。

·         执行存储和物理设计。均衡设计问题以完成性能优化。

·         创建,配置和设计信的数据库实例。

·         诊断,故障检测和解决任何数据库相关问题。必要时联系 Oracle 支持人员以便使问题得到较好的解决。

·         确保 Oracle 网络软件( SQL*Net, Net8, Names, OiD )配置和运行的很好。

·         与系统管理员( Unix & NT )一起工作以保证 Oracle 相关事务得到很好的处理。

·         为有效的,定期的维护数据库创建任何必要的脚本。

 

前面各段的问题是为了使你考虑一名 DBA 该做些什么,帮助你决定这是不是适合你的职业。我并非意味着假如你的目标是成为 DBA 这些会阻止你。我只是尝试着展现一些事实。我看到过一些 DBA 一旦被实际工作打击了就一蹶不振。他们花费时间,精力和一些金钱获得了他们的第一份 DBA 工作。我个人认为这个职业非常有价值。而且我无法想像现在做任何其他的会怎样。所以,这一段帮助你决定这是不是你希望从事的。假如它是,那么尽你所有去得到它!

 

 

我怎样得到第一份 DBA 工作?

你已经阅读了前面的段落并且认为成为一名 DBA 是一个好的职业。祝贺你!我希望你的职业能变成你想像得那么令人兴奋和有意义。那么,你如何找到第一份 DBA 工作?这个问题我已经听别人问了许多许多遍。

 

90 年代早期,因特网急速发展。它使公司象草一般萌芽。公司蜂拥而至并且开始创建他们在网上的形象。几乎所有这些有网站的公司都需要一个数据库作为 web 应用的后台。不幸的是,当时在该领域却没有那么多 DBA 。在 IT 业, DBA 变得奇缺。那段时间里,得到一份 DBA 工作看上去只要可以拼出 “Oracle” 或者可能只是在大学里接触过一学期的数据库就行。为了使生活变得更好, DBA 的匮乏促使公司付给有潜力的职员很高的薪水。假如你想要成为一名 DBA ,很容易,非常容易。你需要做的就是证明你了解什么是数据库然后工作就会比你预期的更早的出现在你面前。

 

然后因特网的泡沫破灭了。大量投产因特网的公司破产。许多给公司工作的 DBA 重新寻找工作。缺少 DBA 的公司找到一名有 DBA 经验的人比以前容易得多。在 21 世纪初期,由于经济并不十分稳固,因此生活并不容易(至少在美国如此)。公司都勒紧了他们的裤腰带。所有这些转化为更少的工作机会和 DBA 候选人更少的工作空缺。

 

得到第一份 DBA 工作的最艰难的部分是每一个职位都要求有一些工作经验。如果你从公司的角度出发,你就可以理解为什么对 DBA 职位而言经验是必需的。假如他没有一点经验,你会付给这个人很高的工资让他去操作,维护和运行你 IT 基础组织的最大最重要的一部分么?你的公司会付钱给一名没有经验的 DBA 么?并且,在等待他成长起来的过程中可能会损失上百万美元的收入。对大多数公司而言,这些问题的答案肯定是‘不’。所以,没有经验,获得你的第一份 DBA 工作是很困难的。

 

第一份 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 ,但是到最后,他们实际想要雇一名低级的 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 )你可以访问所有的 Oracle 在线文档。你必须注册一个账号,但是它是免费的。每个都应该在 TechNet 上有一个账号。

 

步骤 #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=en&lr=&ie=UTF-8&group=comp.databases.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 职业生涯的哪一阶段都可以用到这篇文章。