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

Son*_*nül 92 management learning

我认识很多数据库管理员,他们的年龄都在 28-29 岁之间。

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

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

Lei*_*fel 141

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

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

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


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

  • 非常简洁和周到的观点!!!我会给你+3(每个+1),但这个网站只让我给+1! (9认同)
  • 我也是 +1,关于安全漏洞的一点让我认为索尼需要一组新的 DBA。 (4认同)
  • @zinking - 许多职业都有任务显示进度或成就,然后可以获得认可和奖励。DBA 没有这个,只有在出现问题时才会被识别。这有帮助吗? (2认同)

Rol*_*DBA 56

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

  1. 成为一名开发人员并转而成为一名 DBA
  2. 成为开发人员并被起草为 DBA
  3. 直接从大学/贸易学校培训成为 DBA
  4. 成为系统管理员并作为 DBA 承担双重职责

成为开发人员并转为 DBA

在本网站上提出的另一个问题中,DBA 如何更“对程序员友好”,我提到我是一名与 DBA 一起工作的 16 年开发人员。与他们一起工作让我意识到,就他们的经验包括数据库理论、离散数学和编程经验而言,他们可以看到数据库应该如何工作以及查询应该如何执行。

有一个 DBA 在他们的背景下让我觉得我还在大学里从一些兼职教授那里学习,但他们真正了解他们的东西。只要 DBA 愿意分享他们所知道的,而不是凌驾于您之上,他们实际上可以成为您开发 SQL 语句(SQL 本身就是一种上下文敏感的编程语言)方面的导师,其效率与可能的。当然,还有其他平凡的部分,例如执行安装、进行备份、进行软件升级、监控性能指标、生成报告等等。但是作为开发人员,如果您专注于数据库以及针对这些数据库运行的 SQL,随着时间的推移,您将变得非常熟悉 SQL,这将成为第二天性,您可以专注于应用程序开发。

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

成为开发人员并被起草为 DBA

对于大多数在余生中只看到开发和编码的开发人员来说,这可能就像选择参加真人秀Survivor或游戏节目Wipeout 一样。新的 DBA 花时间与他们多年来一直联系以获取数据的黑匣子(我们都简称为数据库)进行交互。

新 DBA 现在可以创建自己的表和索引。这可能类似于让日本 Hibachi 在意大利餐厅做饭。厨师可以做出任何事情,但必须意识到有新的食谱、厨房用具、餐具、肉类、香料、蔬菜和许多其他需要调整的日常事物(卫生、库存、开始时间、工作时间等)。这不仅是过渡时期,也是克服学习曲线的时期。尽管多年来日本烹饪专家级,但必须学习和发展新的经验水平。在这方面,开发人员必须重新教育自己,像 DBA 一样思考。

直接从大学/贸易学校培训成为 DBA

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

涉及三个学习曲线:

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

在这方面,开发人员将在多年内占据 DBA 的优势。DBA 必须学会在他们作为 DBA 的早期快速适应开发人员的需求。也许 DBA 可以拿到不错的起薪,但如果不在这三个学习领域发展自己,就很难成长。

成为系统管理员并承担或承担 DBA 的双重职责

作为一名前开发人员和现在的 DBA,不能认为理所当然的一件事是 SysAdmin 的角色。

担任 SysAdmin/DBA 的角色对我来说有点令人敬畏。在我雇主的托管公司,我们有一个 SysAdmin/DBA (SCMDBA) 人员。他沉迷于基础设施项目以及他自己的内部 MySQL 工作。我不羡慕他,我赞美他。老实说,由于 SysAdmin/DBA 的真实想法对我来说是陌生的,我让 SysAdmin/DBA 自行决定更新(或完全替换它)这一段来描述这条路径

结论

无论您选择哪条道路,DBA 的角色都可以区分或令人厌恶,这取决于您一开始有多愿意接受指导(或折磨),以及您愿意与其他人一起工作。只有这样才能说他们喜欢成为一名 DBA。

顺便说一句,碰巧我从 2004 年 8 月 39 岁开始经历了前两条 DBA 路径。我在起草 DBA 角色中的两年经验使我向全职 DBA 的过渡非常愉快和舒适.

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


Dav*_*vid 37

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

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

代价高昂的错误 这也是为什么大公司的CEO一般都是50多岁的原因。

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

Jac*_*las 27

成为一个糟糕的 DBA 很容易

不过说真的,DBA 通常对通常对企业成功或失败至关重要的事情负有特殊责任:它的数据

如果您经营一家公司,那么您很可能会热衷于聘请有能力、经验丰富的人员担任该职位

我不认为这是一个“更容易”或“更难”的问题——只是你的数据有多有价值的问题:将卫星送入太空并不比一个人更难,但你会检查你的总和后者更划算


Der*_*ney 18

在我看来,成为数据库管理员很容易……直到出现威胁公司的事情以及修复和恢复您肩上的任何事情的负担。

成为数据库管理员(或网络或系统管理员)是一个需要一定成熟度的职位。需要一个在压力下工作得很好的人。这并不是说没有年轻人可以用必要的技能来处理这个问题。

此外,从书中学习备份/恢复数据库、优化服务器配置等的命令也很容易。但是,当您收到数据库已关闭的警报时,经验会更胜一筹。

  • 逆境中的成熟,我喜欢!!!+1。 (3认同)

jco*_*and 18

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

我认识的大多数优秀、可靠的程序员也至少​​ 25 岁。我想有一个与年龄 + 经验 = 优秀编码员相关的因素。;)

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

成为数据库管理员并不容易,如果这就是您的意思的话。作为 dba,您应该了解很多事情。这也意味着学校,这意味着在另一个人的指导下进行几年的监护。请记住,数据库是集合逻辑,几乎没有人去学校学习足够长的时间,因此没有人知道。集合逻辑与代数共享一些规则,但引擎(MSSQL、Oracle 等)本身就是这些规则实现的扭曲野兽,因此您不仅必须了解数据库背后的数学,还必须了解您的实现运行在上面。这甚至不算知道您喜欢的脚本语言(PL/SQL、TSQL 等)。

然后考虑一下,作为 dba,您将负责确保最关键的业务数据经常交到您的手中。你需要克服“犯愚蠢错误”的最糟糕的部分,你需要学会一些自我克制。大多数 21-23 岁的人还没有学会这一点。我们中有些人 30 岁了还没有。

OT:这就是为什么我说人们在至少 40 岁之前什么都不知道,到那时他们被认为是翻山越岭,而实际上他们才刚刚步入正轨。(据说是 31 岁的人)


小智 16

我认为成为一名 DBA 并不难。成为一个是虽然。

  • 简短而甜蜜:) (6认同)

Chr*_*ers 14

我想回答添加上面没有很好讨论的另一个方面:视野。

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

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

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

换句话说,要成为一名优秀的 DBA,您需要能够在高级业务需求和与实际磁盘存储相关的非常低级理解之间移动,以及关系数学和纯粹的设计技术问题,所有这些都没有任何真正的转变(可能在评估特定决定的过程中)。

我是一名 DBA 和一名开发人员。这两个角色非常互补,但我首先是一名 DBA,如果您看到我编写的库,那就很明显了。但它们互补的原因是,在开发方面,我可以直接与软件的最终用户进行交互,因此我不断地被推动我的愿景的广度,而在数据库方面,我可以挑战自己在深度上。


Wal*_*tty 8

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

从开发人员开始,然后成为数据库设计师,然后成为 DBA。这条道路在大约 30 年前更为普遍,当时数据库开始大量超越基于文件的应用程序,而具有数据库专业知识的人却寥寥无几

PS:当我从前程序员转为 DBA 时,曾经有程序员问我“DBA 工作是不是很无聊?”

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


Koo*_*ter 7

我正处于 DBA 之旅的开始阶段,但这里有一些人们很难找到这份工作的原因......这很难,因为:

  • 你有很多责任:人们可以在公司里来来去去,但对他们中的很多人来说,他们最重要的资产是他们的数据。你对它负责,并拥有对它的所有权力。俗话说,能力越大责任越大。代价高昂的错误潜伏着。
  • 你必须学习并不断学习:我认为这是一种奖励,但并非所有人都愿意花时间更新他们的知识。
  • 这可能很耗时:事情会在半夜破裂,你准备好了吗?
  • 你经常不得不纠正别人的错误:而且你的所有出色工作大多不会得到太多的赞誉。不要害怕提高你的人际交往能力。

Brad Mc Gehee 写了一本关于它的书,“如何成为一名出色的 DBA”。如果您打算深化问题,则值得一读。

祝你好运!

  • +1 因为不要害怕提高您的人际交往能力。 (2认同)

小智 5

我在 25 岁时成为了 dba。从我开始学习到获得认证花了我 6 个月的时间,2 个月后我找到了工作。我认为决心肯定起着重要作用。对我来说,得到这份工作并不难。所需要的只是学习的意志力,并表明我有能力学习摆在我面前的东西。

我会说我所拥有的只是心理学学位和帮助台背景。当我获得 Oracle 应用程序 DBA 的工作时,我立即想到了天哪,我为成为 CORE DBA 而学习的所有东西都没有帮助我。我记得我感到非常不知所措。我不得不每天提醒自己我可以学到这一点,两年后我获得了更多的知识。

我要说的是,成为一名 DBA 并不难,一点也不难,但是在工作和工作之外学习所有东西,我们应该知道,正如之前的 dba 之前提到的那样,既耗时又费力。我发现在 27 岁时,大多数同龄人或比我年轻的人都没有学习如此广泛的技术的勤奋或渴望。但我热爱我作为 Oracle Apps DBA 的工作,并期待着我不断学习的其他一切。你可以做到,只要你用心去做,不管你多大年纪!

  • 就是那种精神。你真正学到的是适应 DBA 工作的原则。Oracle 的现场经验让您了解政治、人员、绩效和项目。感谢您分享您作为年轻 DBA 的想法。+1 !!! (2认同)

sta*_*ray 5

成为 DBA 还意味着您要主动而不是被动。你必须能够想象未来会怎样,并做出相应的计划。这涉及努力工作......一次,多次,多次,如果你做得对,奖励是完全缺乏知名度。:-) 你还必须有能力对人(包括老板)说“不”,并客观、有效地用听众可以理解的方式表达你的理由。在高压情况下,您必须谨慎并做出理性决定。你必须能够迅速承认自己的错误,不要让它们蓝屏给你,而是有效地从“我不敢相信我刚刚做到了”到“好吧,解决这个问题的最佳方法是什么”。