为什么数据库管理这么难?


92

我认识很多数据库管理员,他们都是28-29岁。

所有的数据库管理都是这样吗?我的意思是,这是关于获得至少7-8年以上的经验吗?

还是成为数据库管理员这么难?


7
除了令人分心的干扰之外,我不确定漫画会带来什么。其他人?
jcolebrand

9
当您完成开发后,您就可以完全组建并完成并有资格成为DBA ... :-)
gbn

2
这是一个很好的问题。DBA的真正热情吸引了许多人的注意!为此+1 !!!!
RolandoMySQLDBA 2011年

2
@jcolebrand-它描述了一个针对真正严重问题的DBAish解决方案:)显示了与DBA生命相关的艰辛。
dezso 2012年

1
这并不难,只是乏味。
字形2014年

Answers:


141

该职位需要广泛的知识,从开发到系统管理乃至管理。DBA不仅必须了解备份,恢复,内部操作,内存和安全性,而且还应知道如何与开发人员和管理人员进行通信。DBA可以向管理人员进行高层介绍,帮助开发人员调整查询,为新系统配置磁盘空间并在同一小时内从备份中还原数据。这些职责需要丰富的知识,几乎没有重叠。

对于DBA来说,失败的后果通常要比开发人员大。DBA通常支持数十种甚至数百种不同的应用程序和系统,其中大多数对于公司的成功至关重要。安全漏洞,恢复失败或性能问题可能会产生深远的破坏性后果。这需要短时间内无法获得的知识和经验。

DBA的工作做得越好,可见度就越低。 具有安全,可恢复,可用且性能良好的数据库的DBA缺乏认识。有问题时,DBA会受到注意。当他们自己造成问题时,他们不仅会受到注意,而且由于编码不当,网络设置不正确或存储配置不正确而导致数据库出现问题时,也会受到责备。


我29岁时从开发人员转到DBA。对我来说,成为DBA的困难也让我收获颇丰。我喜欢吸收和使用广泛的知识,失败的机会越大,避免他人遭受失败的机会就越有意义,无论其他人是否看到。


9
非常简洁和周到的观点!我会给你+3(每个+1),但是这个网站只允许我给+1 !!!
RolandoMySQLDBA 2011年

4
我也向+1,关于安全漏洞的一点让我觉得索尼需要一套新的DBA。
德里克·唐尼

“ DBA的工作做得越好,可见度就越低。” 对DBA来说这是好事还是坏事?
zinking 2012年

2
@zinking-许多职业的任务显示进步或成就,然后可以得到认可和奖励。DBA没有此功能,只有在出现问题时才能被识别。有帮助吗?
Leigh Riffel 2012年

@LeighRiffel我的问题是:听起来为了使DBA受到认可,他必须创造尽可能多的问题。这种解释了我在DBA方面的经验... LOL
zinking 2012年

57

成为一名DBA实际上需要大量的经验,但基本上只能来自以下四种途径:

  1. 成为开发人员并与DBA保持联系
  2. 成为开发人员并被选为DBA
  3. 从大学/贸易学校直接培训成为一名DBA
  4. 成为SysAdmin并担任DBA或承担双重职责

成为开发人员并与DBA保持联系

在此站点上提出的另一个问题中,DBA如何更“面向程序员”?我提到我是一名使用DBA已有16年的开发人员。与他们一起工作使我意识到,他们的经验包括数据库理论,离散数学和编程经验,在一定程度上,他们可以看到数据库应该如何工作以及查询应该如何执行。

具有这些背景知识的DBA使我感到自己仍在大学学习某些兼职教授,但他真的很了解他们。只要DBA愿意分享他们所知道的知识,而又不将其束缚在您身上,那么他们实际上就可以成为开发与SQL Server一样高效的SQL语句(SQL本身就是一种上下文相关编程语言)的导师。可能。当然,还有其他一些普通的部分,例如执行安装,进行备份,进行软件升级,监视性能指标,生成报告等。但是作为开发人员,如果您专注于数据库以及针对这些数据库运行的SQL,那么随着时间的流逝,您将变得非常精通SQL,这将成为第二天性,您可以专注于应用程序开发。

对开发人员的要求可能会很麻烦,但DBA也会如此。自愿过渡为DBA角色的开发人员将重点从开发和编码转移到了我之前提到的平凡事物。有鉴于此,DBA与程序员紧密合作为DBA提供了为任何项目做出创造性贡献的机会,从而使DBA的角色变得更加有趣。

成为开发人员并被选为DBA

对于大多数开发人员来说,他们在余生中只从事开发和编码工作,这就像选择在真人秀《幸存者》还是游戏节目《Wipeout》中一样。新的DBA花费了很多时间与他们多年来联系过的Black Box(我们都称为数据库)进行交互。

现在,新的DBA可以创建自己的表和索引。这可能类似于让日式Hibachi烹饪成意大利餐厅。厨师可以鞭打任何东西,但必须意识到有新的食谱,厨房用具,餐具,肉,香料,蔬菜以及许多其他平凡的东西需要调整(卫生,库存,开始时间,工作时间等)。这不仅是过渡的时期,也是克服学习曲线的时期。尽管这些年来日本料理很熟练,但仍需要学习和发展新的经验水平。在这方面,开发人员必须重新训练自己,像DBA一样思考。

从大学/贸易学院直接培训成为一名DBA

到目前为止,这是成为DBA的最致命方式。这也是最罕见的路径-实际上,这实际上是闻所未闻的。现在,我们正在谈论让麦当劳或汉堡王的人进入同一家意大利餐厅。

涉及三个学习曲线:

  1. 将大学/贸易学院的技能应用到DBA角色中,
  2. 与特定的RDBMS(PostgreSQL,Oracle,MySQL,DB2,Sybase,Ingres)进行交互,并且
  3. 与开发人员互动(未来的DBA可以直接在学校学习学习体面的社交技能吗?是的,对!)。

在这种情况下,开发人员将拥有多年的DBA优势。DBA必须学习如何迅速适应开发人员作为DBA的早期需求。也许DBA可以赚到不错的起薪,但是如果不发展这三个学习领域,就很难成长。

成为SysAdmin并担任DBA或承担双重职责

作为一名前开发人员,现在是一名DBA,SysAdmin的角色是不容忽视的一件事。

担任SysAdmin / DBA的角色对我来说有点令人敬畏。在我雇主的托管公司,我们有一个是SysAdmin / DBA(SCMDBA)的人。他被基础设施项目以及他自己的内部MySQL演出淹没了。我不羡慕他,我赞扬他。坦白地说,由于SysAdmin / DBA的真正思想对我而言是陌生的,因此,由SysAdmin / DBA酌情决定是否对其进行更新(或完全替代)以描述此路径

结论

无论您选择哪种方式,DBA的角色都可以区分或令人反感,这取决于您一开始会受到怎样的指导(或折磨),以及您愿意如何与其他工作时间在一起。只有这样,才能说他们喜欢成为一名DBA。

顺便说一句,恰好是我从2004年8月开始经历了前两个DBA路径,享年39岁。我在起草DBA角色方面的两年经验使向全职DBA的过渡非常愉快和舒适。 。

我对28-29岁的DBA的建议?与RDBMS一样,善于与人合作。如果您在这两个领域都有所成长,则可以在未来几年内成为DBA。


37

数据库管理很困难,原因有两个

缓慢的反馈 如果对软件架构师的角色做出错误的决定,与程序员相比,获得负面反馈通常会花费更长的时间。程序员通常可以在编译期间或运行测试时意识到错误,这意味着学习周期非常快。当数据库管理员在设计数据库时出错时,他/她发现最终用户将如何实际使用该软件时,可能会得到反馈。这意味着可能要花费数年才能获得有关数据库设计存在缺陷并且需要重新制作的反馈。因此,它需要几年的时间来获得经验,而不是为程序员(有时)要花几分钟的时间。

昂贵的错误 这也是大公司首席执行官通常都在50多岁的原因。


3
@David关于您的缓慢反馈论点,在许多商店中,设计表等是开发人员的工作。
AK

27

成为一个不好的DBA很容易

严重的是,DBA通常对通常对业务成败至关重要的事情负有特殊责任:其数据

如果您经营一家公司,那么您可能很想聘请能胜任的有经验的人担任该职务

我不认为这是“更轻松”或“更难”的问题-只是有关您的数据有多有价值的问题:将卫星放在太空中本质上并不比人难,但是您可以检查总和后者的好处更多


你好杰克。我认为成为DBA就像担任项目经理一样。这些都是至关重要的工作,需要知识和经验。.而且我认为,如果您的公司中DBA不好,即使您有好的开发人员,您的产品也永远不会很好。
SonerGönül,2011年

1
一个好的DBA当然可以帮助开发好的产品,但更重要的是确保数据的可用性,完整性和安全性
杰克·道格拉斯

1
只要您一路走平,这很容易!!!您对我很感激,因为数据是我们的业务,也是DBA的主要商品。如果对DBA有价值,那么DBA将变得足够成熟以应付它。+1 !!!
RolandoMySQLDBA 2011年

18

在我看来,成为数据库管理员很容易...直到出现断点威胁到公司,以及修复和恢复其负担的负担。

成为数据库管理员(或网络管理员或系统管理员)是需要一定成熟度的职位。需要有人在压力下表现良好。这并不是说没有年轻人可以通过必要的技能来解决这个问题。

同样,从书本中学习命令以备份/还原数据库,优化服务器配置等也很容易。但是,当您收到有关数据库已关闭的警报时,会获得成功。


3
面对逆境成熟,我喜欢那个!+1。
RolandoMySQLDBA 2011年

当然,您需要使公司尽快恢复正常运行。
HLGEM

1
是的...“为什么我们不能把它放在云中”->山羊->英雄->“为什么我们不能把它放在云中“周期非常快
swasheck 2012年

18

我认识很多数据库管理员,他们都是28-29岁。所有的数据库管理都是这样吗?

我认识的大多数优秀,精干的程序员都至少25岁。我认为年龄与经验=良好的编码人员是一个相关因素。;)

我的意思是,这是关于获得至少7-8年以上的经验吗?还是成为数据库管理员这么难?你怎么看?

如果这就是您的意思,那么要成为数据库管理员并不容易。作为dba,您应该了解很多事情。那也意味着上学,也意味着在另一个人的陪伴下读书。请记住,数据库是集合逻辑,几乎没有人上学的时间足以学习,因此没人知道。Set-logic与代数共享一些规则,但是引擎(MSSQL,Oracle等)本身就是这些规则实现的扭曲野兽,因此,不仅您必须了解数据库背后的数学原理,而且还必须了解自己的实现方式在上面运行。甚至不知道您喜欢的脚本语言(PL / SQL,TSQL等)。

然后考虑作为dba,您将负责确保将最关键的业务数据经常交给您。您需要克服“愚蠢的错误”中最糟糕的部分,并且需要学习一些自我约束。大多数21-23岁的人还没有学过。我们中30岁的一些人还没有。

OT:这就是为什么我说人们直到40岁才真正知道什么,然后才被认为是在山上,而实际上他们才刚刚迈出大步。(被称为31岁的人)


+1全部正确,尤其是在需要自我克制的年轻人中(来自46岁的人)
RolandoMySQLDBA 2011年


14

我想回答一下,以补充上面没有很好讨论的另一个方面:视野。

开发人员的角色种类繁多,有些角色(例如,设备驱动程序开发或开发操作系统调度程序)需要非常狭窄的视野,并具有深入研究小问题并从纯粹的技术角度进行研究的能力。 。还有其他领域需要非常广阔的视野,但不需要那么多技术深度(使用您选择的ERP框架进行业务应用程序开发)。

数据库之所以独特是因为要做好它们,您必须能够在这些模式之间快速无缝地移动。数据库是数学引擎,但它们是数学引擎,它们以非常复杂的方式适合于业务环境。因此,人们既要把数学问题作为数学问题解决,又要问它如何适用于其他所有问题。

当您查看高级网络工程师或高级系统管理员时,他们是该领域与高级DBA的最接近的匹配(尽管每个领域都大不相同-优秀的高级sysadmin比好的dba需要更广阔的视野,并且好的网络工程师需要更深的领域)。

换句话说,要成为一名优秀的DBA,您需要能够在高级业务需求和与实际磁盘存储有关的非常低级的理解之间切换,而无需涉及关系数学和纯粹的设计技术问题,而无需任何实际的过渡(可能是在评估特定决策的过程中)。

我担任DBA和开发人员。这两个角色是非常互补的,但是我首先是DBA,如果您看到我编写的库,那将是显而易见的。但是它们互补的原因是,在开发方面,我可以直接与软件的最终用户进行交互,因此我不断地追求自己的愿景,而在数据库方面,我要挑战自己在深处。


8

还有另一条路径,与列出的路径略有不同。

从开发人员开始,然后成为数据库设计师,然后成为DBA。大约30年前,这条道路更为普遍,当时数据库开始大量取代基于文件的应用程序,并且具有数据库专业知识的人员很少而且相距甚远

PS:当我是一名前程序员转DBA时,程序员曾经问我:“ DBA是不是很无聊?”

我的回答是:“只有做对了,这才很无聊!”。:)


7

我宁愿开始我的DBA旅程,但以下是一些人们很难找到这份工作的原因...很难,因为:

  • 您承担着很多责任:人们可以在一家公司中来来去去,但是对于其中许多人来说,他们最重要的资产就是他们的数据。您对此负责,并拥有所有权力。俗话说,权力越大,责任就越大。代价高昂的错误潜伏着。
  • 您必须学习并继续学习:我认为这是一种奖励,但并非所有人都愿意花时间使他们的知识保持最新。
  • 这可能很耗时:事情会在半夜中断,您准备好了吗?
  • 您将常常不得不纠正其他人的错误:并且您几乎不会因自己的所有出色工作而获得太多荣誉。不要害怕提高您的人际交往能力。

布拉德·麦基希(Brad Mc Gehee)撰写有关这本书的书,“如何成为杰出的DBA”。如果您打算加深问题,则值得一读。

祝好运!


2
+1是因为不要害怕提高您的人际交往能力。
Walter Mitty

5

我在25岁时成为了dba。从我开始学习获得认证的时间起,我花了6个月的时间,而两个月后,我找到了工作。我认为决心绝对是主要因素。对我来说,获得这份工作并不难。它所要做的就是拥有学习的力量,并表明我能够学习摆在我面前的一切。

我要说的是,我只有心理学学位和服务台背景。当我获得Oracle Apps DBA职位时,我立即想到了OMG,我学习成为CORE DBA的所有知识对我没有一点帮助。我记得自己感到非常不知所措。我不得不每天提醒自己,我可以学习这一知识,两年后,我获得了很多知识。

我的意思是,成为一名DBA并不困难,也不困难,但是要学习工作中和工作中的一切,就像以前的dba所提到的那样,这是耗时的,并且需要付出很多努力。我发现27岁以下的大多数人不勤奋,也不渴望学习如此广泛的技术。但是,我热爱作为Oracle Apps DBA的工作,并期待着所有其他将不断被我学习的方式。只要您专心致志,就可以做到,无论您几岁!


2
就是那种精神。您真正学到的是适应DBA工作的原则。甲骨文公司的现场经验使您了解政治,人员,绩效和项目。感谢您分享您年轻的DBA的想法。+1 !!!
RolandoMySQLDBA 2014年

我曾担任数据库顾问几年。我必须调养的病小狗不仅包括损坏的数据库,还包括严重损坏的DBA。心理学专业的本科生会有所帮助。
Walter Mitty 2015年

5

成为DBA还意味着您要主动而不是被动。您必须能够想象未来会怎样,并做出相应的计划。这涉及到努力工作……一次,很多次,如果做得对,奖励就是完全缺乏名字识别。:-)您还必须能够对别人(包括老板)说“不”,并客观,有效地传达您的听众可以理解的理由。您必须审慎并在高压情况下做出合理的决定。您必须能够快速地处理自己的错误,并且不要让错误让自己蓝屏,而应将齿轮有效地从“我不敢相信我刚刚做了”转换为“好,解决此问题的最佳方法”。


4

作为主要认为自己是SysAdmin,其次是偶然的DBA的人,我认为其中的部分原因取决于自己站立并从事工作,或者更重要的是理解这份工作所需的知识。

我认为旧的MCDBA认证可以很好地总结它。它要求通过四项考试,SysAdmin考试,网络基础结构考试,数据库开发考试和SQL管理考试。这是一个相当广泛的主题,因此实际上,您很可能会首先通过其中一个来解决它。我会说,SQL管理的大部分都由其他三个承担,因此大多数人最初都是通过其中一种途径来实现的。例如,处理SQL备份的SysAdmin(我很多年前第一次涉足SQL),或者开发人员为他们编写的代码设计数据库。刚开始时您不会一无所知,但至少要有部分基础,例如运行SQL的系统以及权限如何工作,或者用于与数据库进行通信的编程方法,

很难判断直到成为DBA才是您真正想做的事,但是通过以上途径,人们可以逐步建立起DBA。您可能会喜欢它并把它作为您的职业重点,或者发现它不适合您并坚持您以前的职业道路,而没有大踏步进入未知领域。但是,这需要时间,并且与DBA在业界“几年内变得更明智”的趋势相吻合。

要成为一名优秀的DBA,您还需要随着年龄的增长而变得自信和成熟。其他人列出了其他方面,但我要补充一点,有信心说不,并站在自己的立场上,并会因经验而感到不适,以了解何时合适。

最后,我认为要成为一名优秀的DBA,需要一定的心态,并且很难知道自己是否具备这种能力,除非您一直处于困境之中。注重细节,愿意提前计划,具有全面了解的能力以及不怕记录工作是保持稳定系统的重要方面。一些SysAdmins和Developers就是这样,可以轻松地进行过渡,而另一些SysAdmins和Developers可能会发现,尽管他们的方法在当前的工作中具有价值,但作为DBA,他们会感到苦恼并且发现这些琐事而不喜欢工作。


您成为一名DBA的声音就像一种生活经历。在开始学习时会变得自律,在您了解什么是DBA以及熟练掌握DBA的过程中会变得柔和。+1 !!!
RolandoMySQLDBA 2014年

3

我认为至少要成为一个非自愿的数据库管理员,最困难的部分是您必须承担偶然遇到的特定组织的数据库所发生的一切。

以我的经验,我的第一个震惊是在星期一早上,由于看似硬件错误而导致数据库服务器崩溃,但是仍然怀疑我做错了什么。

您可以想象,必须应用任何一生中曾经学习或锻炼过的东西,才能使该东西再次起作用。然后,当然,您可以创建整个产品的克隆甚至闪存备份-我们在这里谈论的是一个小型数据库服务器,该服务器通过链接服务器将事物路由到其他计算机网络。在那些时刻,责任感仍然是巨大的。

作为软件开发人员或软件测试人员,责任也很大,但我从未经历过如此艰难的时期。我可以想象,原因在于它们每个人都编织了信息技术世界中蜘蛛网的一小部分。

如果我确实成为数据库管理员,则将更新我在此处编写的内容。

而且,是的,我现在38岁+ 1/2岁。


1
你还很年轻。您有足够的时间学习成为DBA 的社会方面(dba.stackexchange.com/questions/2471/…)和技术方面(dba.stackexchange.com/a/2913/877)。
RolandoMySQLDBA

1

像大多数技能一样,学习成为dba也需要时间。成为一名优秀的 dba需要更长的时间。您阅读和学习的知识越多,您可以应用的知识就越多。

成为dba的另一种方法是编写报告或作为应用程序专家。您花在SQL上的时间越多,您就会越了解数据库的工作方式。精通SQL查询将为成为dba提供良好的起点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.