我学数据库分享文章--数据库管理员成功之路如何走?(1)
DBA是一份清闲的工作,还是复杂且须付出心力的重任?把DBA作为一个可能的职业选择的原因是什么呢? 如何确认应不应该从事DBA这样的职业?中国IT实验室将带领您揭开DBA的神秘面纱。
DBA绝对不是一份清闲的工作。
“我 刚入门选择了Microsoft SQL Server,这是非常适合中小型企业的数据库系统,熟悉Access的很容易就能初步使用Microsoft SQL Server。”小虎目前有意向投身DBA,但越是了解越是犹豫却步,“对数据库管理员来说,主要的日常工作是安装配置SQL Server并进行日常维护。要使SQL Server为机构发挥作用,单靠一个人是不可能拥有所有技能或时间去做一切要做的事情。作为一名DBA,你的工作就是与程序员,网管员,甚至最终用户协 同工作。比如说向SQL编程人员提供他们需要的有关网络硬件和SQL Server的限制因素方面的实际信息,依靠网络管理员解决影响到SQL Server的与网络有关的问题,可能要为正确地做最终用户的培训工作提供一些保证工作,并负责就目前的SQL Server应用软件向最终用户征求反馈意见。如果你在一个小机构工作,你会发现自己常常身兼数职,没有人会说这是个轻松的工作。”
不 止是身兼数职,入行稍久的DBA经常发现,工作需要的话,你得准备好随时候命,会在白天或晚上的所有时间接到呼叫去解决他们的数据库出现的致命问题。“当 数据库down掉,即使只是很短的时间,公司也会损失重大。基于这个原因,DBA到达现场后必须尽可能迅速的解决问题。”大的公司,有自己的DBA团队以 便可以轮流待命,24x7小时的维持数据库应用程序,但如果只有几个,或者只有一个DBA呢?
微笑的鹿说,他的职责包括为为软件打补丁或者对数据库做些改变,但是这些操作不能在公司职员工作的时候做,因为此时数据库必须运行以便他们能够工作。“这意味着DBA经常不得不在很早或者深夜甚至周末,总之,在正常工作时间以外来完成工作。”
如果你没准备好在非正常时间工作,或者在找一个朝九晚五的工作,那么,DBA不是你的最佳选择。
那么,迎难而上成为DBA有什么原因呢?
有的人有成为一名好DBA所需要的天赋,而有的人并不认为成为DBA的秘诀很容易就能掌握。DBA职业需要掌握一定的技能,而且还需要其他IT职业所不必需的要求。
“我想成为DBA,其中一个主要原因是薪水。DBA是IT业中薪水最高的职业之一。”八零后的JOHN坦白地说,“我在网上的DBA资薪调查中注意到,除了重庆是一千多之外,北京上海都是三千多,最高的是深圳有四千。比起当网管员来划算得多了。”
那么,他对自己的实力有没有把握,知道DBA所须的技能吗?
JOHN眨眨眼,竖起手指头一个一个数出来:
安装和升级数据库服务器(如Oracle、Microsoft SQL server),以及应用程序工具。
数据库设计系统存储方案,并制定未来的存储需求计划。
一旦开发人员设计了一个应用,就需要DBA来创建数据库存储结构(tablespaces)。
一旦开发人员设计了一个应用,就需要DBA来创建数据库对象(tables,views,indexes)。
根据开发人员的反馈信息,必要的时候,修改数据库的结构。
登记数据库的用户,维护数据库的安全性。把监视数据库实例当作每日必做工作以保证其可用性。升级RDBMS软件并且在必要时使用补丁。必要时升级或者迁移数据库实例。
保证数据库的使用符合知识产权相关法规。
控制和监控用户对数据库的存取访问。分析和管理数据库安全性。控制和监视用户对数据库的访问。必要时审计数据库的使用。
监控和优化数据库的性能。通过分析评价数据库性能,调整服务器操作系统参数、数据库参数、网络性能、应用程序SQL语句等,优化数据库性能,保证数据库在最佳状态下运行。
制定数据库备份计划,灾难出现时对数据库信息进行恢复
维护适当介质上的存档或者备份数据。
监视备份程序。必要时提供恢复。测试备份与恢复程序。
跟随数据库趋向和技术。当可应用时使用新技术。安装,测试和评估Oracle新的相关产品。
联系数据库系统的生产厂商,跟踪技术信息。
“我 并不是一定得到大公司啊外企啊,一个小的软件开发工作室,不管它是自己开发应用软件,还是购买第三方的应用软件,只要涉及到数据库,就需要确定是否雇佣一 个或几个DBA。”他自信地补充,“我有信心,有多少不涉及数据库的应用软件呢?数据库是商业的灵魂和大脑啊。”JOHN不怕挑战,他经常下载数据库供应 商的数据库系统测试版或评估版来练习使用数据库,故意破坏数据库并且尝试修复它,尝试着履行他所能想到的尽可能多的DBA职责,测试和磨练自己在测试平台 上的技能,证明了他的数据库管理能力。
除了工资高,其他人想成为DBA是因为喜欢赞扬DBA所收到的荣誉,或者因为他看上去很酷!
90 年代早期,在IT业,DBA变得奇缺。假如你想要成为一名DBA,很容易,非常容易。你需要做的就是证明你了解什么是数据库然后工作就会比你预期的更早的 出现在你面前。然而进入千禧年,求职者面对更多的严格要求,如果没有经验,获得你的第一份DBA工作是很困难的。没有多少公司会出高工资让一个没有一点经 验的DBA去操作、维护和运行IT基础组织的最大最重要的一部分。
在这一点上,洛飞是幸运的。
“我 个人认为,成为DBA是很值得的。它是一个很有意思,令人兴奋的职业。”洛飞来到深圳已有四年,成为DBA也有二年时间了,毕业前就已看准职业方向,立志 成为DBA,将之视为挑战与乐趣并存的工作。“DBA的角色正在转变,以往企业通常用一名网管来兼任数据库管理员,而现在随着数据库技术的广泛应用,企业 要求能够胜任的专业数据库管理员,很多企业正在从其它数据库转向ORACLE,技术人员供不应求。”
洛飞的计算机基础非常扎实,说起DBA的职能也如数家珍,“数据库管理员负责全面管理和控制数据库系统,职责范围包括:对ORACLE数据库的运行状态,日 志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。及时对数据库对象的空间扩展情况,数据的增长情况进行监控,对数 据库做健康检查,对数据库对象的状态做检查,对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一 步空间管理计划,对ORACLE数据库状态进行全面检查。”
那么洛飞是否有相应的能力解决问题呢?洛飞承 认他毕业之前的相关应用经验,只限于校园内参与的网络安全管理,“但我是计算机相关专业本科毕业,精通至少一种数据库的使用、开发、优化,特别是 MySQL数据库,熟悉计算机语言,HTML/CSS、JavaScript、Shell、PERL、PHP、C/C++等,具有良好的英语阅读、沟通能 力,实习期间在师兄指导下,能够进行数据库安装、数据库配置和管理 、权限设置和安全管理 ,监控和性能调节 、进行数据的备份和恢复,能够解决一般技术问题,通晓系统架构和数据库设计,并能对数据库进行各种级别的优化;监控数据库的警告日志,定期做备份删除。在 深圳通过一个月的试用期后,老板对我的表现很满意,我现在熟悉GNU/Linux、FreeBSD、MS Windows等操作系统的管理和开发环境,熟悉开发、研究和项目管理流程,不久前还提了工资。”洛飞表示,能得到老板的肯定,除了自己善于学习总结肯吃 苦耐劳之外,还在于自己的英语能力相当出色,能够用流利的英语解释复杂的技术概念,让团队中其他人明白,将DBA在团队中的工作发挥到最大。
然而对比洛飞的实力与机遇并存,入行已五年的BEN并不鼓励IT人士盲目踏入DBA行业,他坦然说,“除非你已经提前准备好了,否则你可能会发现从事DBA职业充满了挫折和令人头痛。”
“一 个数据库存在于操作系统和最终用户应用程序之间,同样地,DBA必须非常精通他的数据库所在的操作系统。DBA并不一定需要知道所有有关操作系统的知识, 但是他知道得越多越好。数据库与操作系统联系非常紧密,理解这种关联是十分必要的。DBA还需要知道服务器硬件以及它如何影响与帮助数据库。同时,DBA 必须理解应用软件,DBA可能会被要求帮助开发人员创建可靠,健全的数据库应用程序。”
“还有,最重要的 也是最明显的,DBA必须十分彻底的理解数据库引擎,它是如何工作的,所有的引擎是如何组合在一起的,以及如何影响数据库引擎向最终用户和应用程序传送数 据的能力。我见过的最好的DBA不仅仅对数据库本身有非常深刻的理解,他们知道一些系统管理与应用开发,好多时候他们在成为DBA之前有其中一个或两个背 景,无论如何,成为一名合格的而不是出色的DBA也需要许多背景知识。”
DBA的等级并不是很严格的。按照对数据库的掌握情况,简单地分成三个等级:初级Primary、中级Intermediate和高级Senior。
初级DBA又称为DBBS,是英文Database Baby Sitter的缩写。初级DBA常常是兼职的,他们往往同时是程序员或者兼任其他的工作。
BEN最初就是程序员兼任DBBS,只做一些监控的工作。第三方软件供应商已经安装并配置了数据库,他只须处理一些简单的问题,“那时我更喜欢图形化的数据库管理或者监控工具,例如Access这样的桌面数据库更简单易用。”