﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-无晴岁月-文章分类-数据库</title><link>http://www.blogjava.net/dezz/category/1320.html</link><description>忘却昨日的哀伤，天色已渐苍茫，踏上征途，继续寻觅着自己的天涯……</description><language>zh-cn</language><lastBuildDate>Sun, 11 Mar 2007 22:15:06 GMT</lastBuildDate><pubDate>Sun, 11 Mar 2007 22:15:06 GMT</pubDate><ttl>60</ttl><item><title>[转]数据库管理员DBA</title><link>http://www.blogjava.net/dezz/articles/4287.html</link><dc:creator>Dezzalize</dc:creator><author>Dezzalize</author><pubDate>Sat, 14 May 2005 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/dezz/articles/4287.html</guid><wfw:comment>http://www.blogjava.net/dezz/comments/4287.html</wfw:comment><comments>http://www.blogjava.net/dezz/articles/4287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dezz/comments/commentRss/4287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dezz/services/trackbacks/4287.html</trackback:ping><description><![CDATA[<p><font size="2">数据库管理员，英文是
Database
Administrator，简称DBA。这个职位对不同的人意味着不同的意义。一个小的软件开发工作室和一个分工高度明细的大公司相比，DBA的职责来
得更加宽泛一些。一个公司，不管它是自己开发应用软件，还是购买第三方的应用软件，只要涉及到数据库（有多少不涉及数据库的应用软件呢？数据库是商业的灵
魂和大脑啊），就需要确定是否雇佣一个或几个DBA。知道DBA这个职位有哪些要求，对于企业内部这个职位的定义或者对于那些未来的DBA将是至关重要
的。</font></p>

<p><font size="2">DBA的一些职责：</font></p>

<p><font size="2">安装和升级数据库服务器（如Oracle、Microsoft SQL server），以及应用程序工具。 <br>
数据库设计系统存储方案，并制定未来的存储需求计划。 <br>
一旦开发人员设计了一个应用，就需要DBA来创建数据库存储结构（tablespaces）。 <br>
一旦开发人员设计了一个应用，就需要DBA来创建数据库对象（tables,views,indexes）。 <br>
根据开发人员的反馈信息，必要的时候，修改数据库的结构。 <br>
登记数据库的用户，维护数据库的安全性。 <br>
保证数据库的使用符合知识产权相关法规。 <br>
控制和监控用户对数据库的存取访问。 <br>
监控和优化数据库的性能。 <br>
制定数据库备份计划，灾难出现时对数据库信息进行恢复 <br>
维护适当介质上的存档或者备份数据 <br>
备份和恢复数据库 <br>
联系数据库系统的生产厂商，跟踪技术信息。 <br>
</font></p>

<p><font size="2">DBA的个性特点</font></p>

<p><font size="2">　　很多时候管理人员都忽视了DBA的个性特点，他们只关注DBA的技术能力。实际上，上面谈到的每个职责都意味着：DBA需要跟各种人员打交道，这些人员可能是销售商、用户、开发人员或者管理人员。这说明：DBA必须具有下面的个性特点：</font></p>

<p><font size="2">自信心 <br>
好奇心 <br>
坚韧的意志力 <br>
老练 <br>
自我驱动 <br>
注意细节 </font></p>

<p><font size="2">为什么这些个性特点很重要呢？</font></p>

<p><font size="2">　　我就有几个缺乏自信心的部下，他们反复问我一些事无巨细的问题，他们没有信心哪怕做最小的决定。他们也缺乏工作的主动性。这对于初级DBA来说
可能问题不太大，但对于那些高级DBA来说，如果他们缺乏自信心，他们又可以依赖谁帮他们决策呢？在DBA的面试中，即使你不能回答某个技术问题，你也要
表现出足够的自信心。最致命的不是不知道问题的答案，而是不知道从哪儿得到答案。</font></p>

<p><font size="2">　　几乎所有的数据库系统都在不停地更新。但并不是所有的更新都有技术文档。对于好的DBA来说，好奇心是必需的。没有好奇心和求知欲的DBA总是
等待有人告诉他们答案。而一个求知欲强的DBA将安装最新版本的数据库系统，并立即开始搜寻那些哪怕是细微的功能和性能上的差异和增强，从而改进自己的工
作。应试时一个必然问及的问题是：你手头有哪些参考资料？你如何使用它们？毫无疑问，如果你只回答了数据库的文档，或者你甚至没有读过他们，你的"股票市
值"将大大下降。好奇心会驱使DBA们理解数据字典(Data Dictionary)、管理工具(Tools)或者其他支持包(Packages)。</font></p>

<p><font size="2">　　DBA常常会碰到棘手的问题。寻找答案是一个需要坚韧意志力、可以经受摔打的个性特点。我常常在一些讨论组或者论坛上看到DBA们提出的问题，这些问题往往是提问者自己可以解决的，如果他们具有坚韧的个性特点，并努力寻求问题的答案。</font></p>

<p><font size="2">　　自我驱动对每个人都是很重要的，对DBA尤其如此。DBA要能想办法使问题出现，而不是等待问题的出现。自驱力强的DBA常常设法取得或者自己
写一些必要的脚本(Script)来监控包括数据表大小(Table Size)、表空间使用(Tablespace
Usage)等项目，这些项目如果被忽视，他们将遇到麻烦。应试的时候DBA们常常被问及在PL/SQL、SQL或者SQL*PLUS方面的经验，这些问
题将把你从从来没有编写过自己需要的脚本的那些DBA们区分开。</font></p>

<p><font size="2">　　不用说和用户，就是和程序员和管理人员打交道，也需要你足够老练。一个一点不会处事的DBA不会为你做什么好事，只会在你的部门点燃敌对情绪的
烈火。老练是这样一种能力，你劝告某个人到地府去，哈哈，最后这个人怀着渴望的心情去了。很多时候，开发者、管理者、用户，他们会提出毫无道理的需求，
DBA们需要老练地引导、修正它们的要求，说服他们。在应试时，你的应对就很能说明你是否老练。<br>
最后说说注意细节，这种性格倾向非常重要。注意细节的DBA们衣着整洁，有自己的日程安排，在应试前对应聘的单位做过调查。注意细节的DBA们深入了解数据库的内核，并能理解视图、表之间的关系。</font></p>

<p><font size="2">DBA的等级</font></p>

<p><font size="2">　　DBA的等级并不是很严格的。按照对数据库的掌握情况，我简单地分成三个等级：初级Primary、中级Intermediate和高级Senior。</font></p>

<p><font size="2">　　初级DBA又称为DBBS，是英文Database Baby
Sitter的缩写。初级DBA常常是兼职的，他们往往同时是程序员或者兼任其他的工作。初级DBA往往把个人简历写得很棒，参与了很多和数据库有关的项
目或工作。但是，这些项目或者工作往往是：第三方软件供应商已经安装并配置了数据库，他们只做一些监控的工作。他们能处理一些简单的问题，但大多数时候他
们向应用软件供应商求救。初级DBA更喜欢图形化的数据库管理或者监控工具，他们喜欢Access这样的桌面数据库简单易用，并把这些小型数据库的经验简
单地应用到大型数据库相关的工作中。</font></p>

<p><font size="2">　　初级DBA是最好区分的。而中级DBA和高级DBA就不太好区分。他们的差别在于经验的不同和个性特点、能力方面的差异。中级DBA比较多，他们可以胜任高级DBA的大部分工作，包括：</font></p>

<p><font size="2">数据库安装 <br>
数据库配置和管理 <br>
权限设置和安全管理 <br>
监控和性能调节 <br>
备份和恢复 <br>
解决一般的问题 </font></p>

<p><font size="2">　　中级DBA往往从业一年左右，熟悉某种操作系统环境下的数据库。因为对中级DBA来讲，Windows
NT和Unix是有很大差别的。中级DBA对SQL比较熟悉，他们自己购买了几本数据库方面的书籍，并深入钻研。中级DBA往往同时兼任数据库程序员，他
们的工作对性能、稳定性、安全性的追求基本上不是很高，往往配合高级DBA做一些例行工作。</font></p>

<p><font size="2">　　高级DBA在国内是非常少的。他们购买了太多的数据库方面的英文资料，也许是托朋友从Amazon买的。相对于他们的报酬来讲，买书的钱是很少
的一个比例。高级DBA一般都熟悉很多种操作平台下的几种大型数据库。他们知道各种不同数据库在不同环境下的优势和劣势，并能在数据库平台和数据库环境的
选择方面做出决策。他们一般通晓系统架构和数据库设计，并能对数据库进行各种级别的优化。高级DBA一般都配有助手，他们更偏向做决策和计划。高级DBA
往往在银行业、保险业、在线交易等对稳定性、安全性、性能都要求比较高的关键业务处理领域大显身手。</font></p>

<p><font size="2">　　很多时候，是否取得数据库专家认证证书并不是很重要。我知道很多数据库厂商的培训只要你去了都会获得证书。有很多的公司提供商业化的培训，他们的服务质量也有好有劣。所以证书并不是特别地有意义。</font></p>

<p><font size="2">几种流行的数据库系统</font></p>

<p><font size="2">最"容易"的数据库系统-Microsoft SQL Server</font></p>

<p><font size="2">　　如果你打算做一个DBA，建议你选择那些现在比较流行的数据库系统。这意味着你将有更多的就业机会、交流和培训机会，而且，流行自有流行的理
由，你可以因此省心很多。当然，就业竞争压力也比较大。一般的入门者选择Microsoft SQL
Server，这是非常适合中小型企业的数据库系统，熟悉Access的读者很容易就能初步使用Microsoft SQL
Server，成为一个DBBS。 J<br>
Microsoft SQL Server 7.0的报价，5用户版1399美金，增加用户时，127美金每用户。</font></p>

<p><font size="2">最"难"的数据库-无冕之王Oracle</font></p>

<p><font size="2">　　如果你有机会接触到Oracle，那可是个好机会。Oracle是目前最看好的数据库厂商，由于其强大的功能和可配置、可管理能力，
Oracle
DBA的薪资一般比其他数据库管理员的薪资要高。而且，Oracle在大中型企业的关键应用也更加普遍了。Oracle可以运行在Windows
NT、Sun
Solaris、Linux等平台下。很多情况下要求你不仅仅熟悉NT，还要你熟悉Unix；而且Oracle不太友善的界面和成箱的Oracle产品资
料可能也是一个障碍。<br>
Oracle 8i标准版的报价，如果运行在Windows NT，附带JServer和interMedia，支持5个并发用户，报价是3925美金每CPU。增加并发用户时，785美金每用户。增加附加的命名用户时，392.5美金每用户。</font></p>

<p><font size="2">数据库系统的贵族-IBM UDB/DB2</font></p>

<p><font size="2">　　作为30年数据库研究的成果，IBM
DB2确实称得上"数据库系统的贵族"。不管是小型商业系统，还是大的银行系统，用DB2都是可以高枕无忧的。最近推出的新版DB2 6.1，
管理和调节工具更加卓越和便于使用。DB2
可以运行在Intel架构上，也可以运行在IBM的S/390大型计算机上。如果你所在的行业对IBM的机器特别地称道，建议你学习IBM DB2。</font></p>

<p><font size="2">DB2有两种版本：工作组版和企业版。工作组版999美元每服务器，外加249美元每个并发用户。而企业版是12500美元每个CPU，不限并发用户数量。</font></p>

<p><font size="2">以Java为中心的数据库-Sybase Adaptive Server Enterprise(ASE) 12.0</font></p>

<p><font size="2">　　即将发布的Sybase ASE 12.0，直接面向Java 程序员。这种以Java为中心的数据库系统，为那些准备在Java
平台下构建企业应用的企业来说，将是最好的选择。但是ASE称不上一个数据库领域的领先者，尽管相对于它以前的版本已经改进很多，并支持多个CPU和更多
的并发，还有很多的新的特性。但Sybase的风光似乎已经不再。</font></p>

<p><font size="2">值得期盼的Informix Centaur</font></p>

<p><font size="2">　　有时候"第一"只是意味着你的对手需要等待更长的时间去赶上你。这正是1997年创立的Informix所面临的。Informix公司是率先
将多媒体特性加入到关系数据库系统的大型数据库厂商之一。但是如今，IBM、Oracle、Sybase都已经跨越了这个概念。所以，Informix不
得不寻求新的支撑来使自己区别于其他数据库厂商。这就是Informix Centaur的目标。Informix
Centaur结合了Informix Dynamic Server 7.3的对象-关系数据库和Informix Universal Data
Option 9.1，意在获得更好的适应性和多媒体支持。详情如何，我们拭目以待！</font></p>

<p><font size="2">DBA的薪资</font></p>

<p><font size="2">有很多因素影响到你作为DBA的薪资：</font></p>

<p><font size="2">你的经验和能力所决定的DBA等级 <br>
你所熟悉的数据库系统 <br>
你的个性特点和潜力</font></p>
<img src ="http://www.blogjava.net/dezz/aggbug/4287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dezz/" target="_blank">Dezzalize</a> 2005-05-14 10:22 <a href="http://www.blogjava.net/dezz/articles/4287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>