Soner Gönül Asked: 2011-05-25 05:33:39 +0800 CST2011-05-25 05:33:39 +0800 CST 2011-05-25 05:33:39 +0800 CST 为什么数据库管理这么难? 772 我认识很多数据库管理员,他们的年龄都在 28-29 岁之间。 所有的数据库管理都是这样吗?我的意思是,这是要获得至少 7-8 年以上的经验吗? 还是数据库管理员这么难? management learning 15 个回答 Voted Best Answer Leigh Riffel 2011-05-25T16:26:47+08:002011-05-25T16:26:47+08:00 该职位需要广泛的知识,从开发到系统管理甚至管理。DBA 不仅必须了解备份、恢复、内部操作、内存和安全性,还必须了解如何与开发人员和管理层进行沟通。DBA 可以在同一小时内向管理层提供高级演示、帮助开发人员调整查询、为新系统配置磁盘空间以及从备份中恢复数据。这些职责需要大量知识,几乎没有重叠。 对于 DBA 而言,失败的后果通常比开发人员更大。DBA 通常支持数十种甚至数百种不同的应用程序和系统,其中大多数对公司的成功至关重要。安全漏洞、恢复失败或性能问题可能会产生深远的破坏性后果。这需要一定程度的知识和经验,而这些知识和经验是短时间内无法获得的。 DBA 的工作做得越好,他们的知名度就越低。 拥有安全、可恢复、可用且性能良好的数据库的 DBA 将缺乏认可。当出现问题时,DBA 会受到注意。当他们的问题是自己造成的时,他们不仅会受到注意,而且当数据库由于编码不佳、网络设置不当或存储配置不正确而出现问题时,他们也会受到指责。 我在 29 岁时从开发人员转到 DBA。对我来说,成为 DBA 困难的事情也让我受益匪浅。我喜欢吸收和使用广泛的知识,失败的机会越大,无论其他人是否看到,避免失败都变得更有意义。 RolandoMySQLDBA 2011-05-25T08:59:57+08:002011-05-25T08:59:57+08:00 成为一名 DBA 实际上需要大量的经验,但它基本上只能来自四种不同的途径: 成为一名开发人员并成为一名 DBA 作为一名开发人员并被选为 DBA 直接从大学/职业学校培训成为 DBA 作为一名系统管理员并成为一名 DBA 或担任双重职责 成为一名开发人员并成为一名 DBA 在本网站上提出的另一个问题中,DBA 如何更“对程序员更友好”,我提到我是一名 16 年与 DBA 一起工作的开发人员。与他们一起工作让我意识到,在他们的经验包括数据库理论、离散数学和编程经验的范围内,他们可以看到数据库应该如何工作以及查询应该如何执行。 拥有具有这些背景的 DBA 让我觉得我还在大学里向一些兼职教授学习,但他们真正了解他们的东西。只要 DBA 愿意分享他们所知道的,而不是凌驾于您之上,他们实际上可以成为您开发 SQL 语句(SQL 本身就是一种上下文敏感的编程语言)的导师,其效率与可能的。当然,还有其他平凡的部分,例如执行安装、进行备份、进行软件升级、监控性能指标、生成报告等等。但是作为开发人员,如果您专注于数据库以及针对这些数据库运行的 SQL,随着时间的推移,您将变得如此熟练地使用 SQL,这将成为第二天性,您可以专注于应用程序开发。 对开发人员的要求可能很繁重,但 DBA 也是如此。自愿转换为 DBA 角色的开发人员将注意力从开发和编码转移到我之前提到的平凡的事情上。鉴于此,DBA 与程序员密切合作为 DBA 创造了为任何项目做出创造性贡献的机会,从而使 DBA 的角色变得更加有趣。 作为一名开发人员并被选为 DBA 对于大多数在余生中只看到开发和编码的开发人员来说,这可能就像选择参加真人秀节目Survivor或游戏节目Wipeout一样。新的 DBA 将时间花在与他们多年来为获取数据而联系的那个黑盒(我们都称为数据库)进行交互。 新的 DBA 现在可以创建自己的表和索引。这可能类似于让日本 Hibachi 厨师进入意大利餐厅。厨师可以制作任何东西,但必须意识到有新的食谱、厨房用具、餐具、肉类、香料、蔬菜和许多其他平凡的东西需要适应(卫生、库存、开始时间、工作时间等)。这不仅是过渡时期,也是克服巨大学习曲线的时期。多年来,尽管日本烹饪专业,但必须学习和发展新的经验水平。在这方面,开发人员必须重新教育自己像 DBA 一样思考。 直接从大学/贸易学校培训成为 DBA 到目前为止,这是成为 DBA 最致命的方式。这也是最罕见的路径——事实上,这几乎是闻所未闻的。现在我们正在谈论让麦当劳或汉堡王的人进入同一家意大利餐厅。 涉及三个学习曲线: 将大学/商学院的技能应用到 DBA 角色中, 与特定的 RDBMS(PostgreSQL、Oracle、MySQL、DB2、Sybase、Ingres)交互,并且, 与开发人员互动(未来的 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。 David 2011-05-25T09:21:57+08:002011-05-25T09:21:57+08:00 数据库管理很困难,原因有两个 缓慢的反馈 如果一个人在担任软件架构师的角色时做出了错误的决定,与程序员相比,通常需要更长的时间才能获得负面反馈。程序员通常可以在编译或运行测试时意识到错误,这意味着学习周期非常快。数据库管理员在设计数据库时犯了错误,当他/她发现最终用户将如何实际使用该软件时,他/她可能会得到反馈。这意味着可能需要数年时间才能获得有关数据库设计存在缺陷并需要重新制作的反馈。因此,程序员需要数年时间才能获得经验,而不是几分钟(有时)。 代价高昂的错误 这也是为什么大公司的CEO一般都在50多岁的原因。 Jack Douglas 2011-05-25T05:42:36+08:002011-05-25T05:42:36+08:00 成为一个糟糕的 DBA 很容易 不过说真的,DBA 通常对通常对企业成败至关重要的事情负有特殊责任:数据 如果您经营一家公司,那么您很可能热衷于聘请有能力的有经验的人担任该职位 我不认为这是一个“更容易”或“更难”的问题 - 只是一个关于你的数据有多有价值的问题:将卫星放入太空并不比人更难,但你会检查你的总和对后者来说更划算 Derek Downey 2011-05-25T05:53:21+08:002011-05-25T05:53:21+08:00 在我看来,成为一名数据库管理员很容易……直到出现威胁公司的问题,以及修复和恢复你肩上的任何东西的负担。 作为数据库管理员(或网络或系统管理员)是一个需要一定成熟度的职位。这需要一个在压力下工作得很好的人。这并不是说没有年轻人可以用必要的技能来处理这个问题。 此外,从书中学习命令来备份/恢复数据库、优化服务器配置等也很容易。但是当您收到数据库已关闭的警报时,经验就会胜出。 jcolebrand 2011-05-25T07:20:14+08:002011-05-25T07:20:14+08:00 我认识很多数据库管理员,他们的年龄都在 28-29 岁之间。所有的数据库管理都是这样吗? 我认识的大多数优秀、扎实的程序员也至少 25 岁。我想有一个与年龄 + 经验 = 好的编码器相关的因素。;) 我的意思是,这是要获得至少 7-8 年以上的经验吗?还是数据库管理员这么难?你怎么看? 如果这就是您的意思,成为数据库管理员并不容易。作为 dba,您应该知道很多事情。这也意味着学校,这意味着在另一个人的指导下几年。请记住,数据库是集合逻辑,几乎没有人上学足够长的时间来学习,因此没有人知道。集合逻辑与代数共享一些规则,但引擎(MSSQL、Oracle 等)本身就是这些规则实现的扭曲野兽,因此您不仅必须了解数据库背后的数学,还必须了解您的实现运行在上面。这甚至不包括了解您喜欢的脚本语言(PL/SQL、TSQL 等)。 然后考虑一下,作为 dba,您将负责确保经常将最关键的业务数据委托给您。你需要克服“犯愚蠢的错误”最糟糕的部分,你需要学会一点自制力。大多数 21-23 岁的人还没有学会这一点。我们中的一些人 30 岁还没有。 OT:这就是为什么我说人们至少在 40 岁之前什么都不知道,到那时他们被认为是过山车,而实际上他们才刚刚迈出大步。(说是31岁的人) user1875 2011-05-26T06:32:54+08:002011-05-26T06:32:54+08:00 我认为成为一名 DBA 并不难。成为一个虽然是。 Chris Travers 2013-11-19T01:20:43+08:002013-11-19T01:20:43+08:00 我想回答添加上面没有很好讨论的另一个方面:视野。 开发人员有各种各样的角色,其中一些(例如,设备驱动程序开发或开发操作系统调度程序)需要非常狭窄的视野和深入研究小问题并从纯技术角度看待它的能力. 还有其他领域需要非常广阔的视野,但技术深度却不那么高(使用您选择的 ERP 框架进行业务应用程序开发)。 数据库是独一无二的,因为要做好它们,您必须能够在这些模式之间快速无缝地移动。数据库是数学引擎,但它们是以非常复杂的方式适应业务环境的数学引擎。因此,一个人必须既能将数学问题作为一个数学问题来解决,又能询问它如何适应其他所有问题。 当您查看高级网络工程师或高级系统管理员时,他们与该领域的高级 DBA 最接近(尽管每个领域都大不相同——优秀的高级系统管理员比优秀的 dba 需要更广阔的视野,并且好的网络工程师需要更深的领域)。 换句话说,要成为一名优秀的 DBA,您需要能够在高级业务需求和与实际磁盘存储相关的非常低级的理解之间移动,并能够过渡到关系数学和纯粹的设计技术问题,所有这些都不需要任何真正的过渡(并且可能在评估特定决定的过程中)。 我担任 DBA 和开发人员。这两个角色非常互补,但我首先是一名 DBA,如果你看到我编写的库,那将是显而易见的。但它们相辅相成的原因是,在开发方面,我可以直接与软件的最终用户进行交互,因此我不断受到关于我愿景的广度的推动,而在数据库方面,我可以挑战自己在深度上。 Walter Mitty 2013-04-01T04:26:48+08:002013-04-01T04:26:48+08:00 还有另一条路径,与列出的路径略有不同。 从开发人员开始,然后成为数据库设计师,然后成为 DBA。这条道路在大约 30 年前更为流行,当时数据库开始大量超越基于文件的应用程序,而具有数据库专业知识的人很少而且相差甚远 PS:当我从前程序员转为 DBA 时,程序员常常问我“DBA 的工作不枯燥吗?” 我的回答是:“只有做对了才会无聊!”。:) KookieMonster 2013-04-02T11:58:41+08:002013-04-02T11:58:41+08:00 我的 DBA 之旅才刚刚开始,但这里有一些人们很难找到这份工作的原因......这很难,因为: 你有很多责任:人们可以在公司里来来去去,但对他们中的很多人来说,他们最重要的资产是他们的数据。你对它负责并拥有一切权力。俗话说,能力越大,责任越大。代价高昂的错误潜伏在周围。 你必须学习并继续学习:我认为这是一种奖励,但并非所有人都愿意花时间让他们的知识保持最新。 这可能很耗时:事情会在半夜发生,你准备好了吗? 你经常不得不改正别人的错误:你的出色工作大多不会得到太多的赞誉。不要害怕提高你的人际交往能力。 Brad Mc Gehee 写了一本关于它的书,“如何成为一名出色的 DBA”。如果您打算加深问题,值得一读。 祝你好运!
该职位需要广泛的知识,从开发到系统管理甚至管理。DBA 不仅必须了解备份、恢复、内部操作、内存和安全性,还必须了解如何与开发人员和管理层进行沟通。DBA 可以在同一小时内向管理层提供高级演示、帮助开发人员调整查询、为新系统配置磁盘空间以及从备份中恢复数据。这些职责需要大量知识,几乎没有重叠。
对于 DBA 而言,失败的后果通常比开发人员更大。DBA 通常支持数十种甚至数百种不同的应用程序和系统,其中大多数对公司的成功至关重要。安全漏洞、恢复失败或性能问题可能会产生深远的破坏性后果。这需要一定程度的知识和经验,而这些知识和经验是短时间内无法获得的。
DBA 的工作做得越好,他们的知名度就越低。 拥有安全、可恢复、可用且性能良好的数据库的 DBA 将缺乏认可。当出现问题时,DBA 会受到注意。当他们的问题是自己造成的时,他们不仅会受到注意,而且当数据库由于编码不佳、网络设置不当或存储配置不正确而出现问题时,他们也会受到指责。
我在 29 岁时从开发人员转到 DBA。对我来说,成为 DBA 困难的事情也让我受益匪浅。我喜欢吸收和使用广泛的知识,失败的机会越大,无论其他人是否看到,避免失败都变得更有意义。
成为一名 DBA 实际上需要大量的经验,但它基本上只能来自四种不同的途径:
成为一名开发人员并成为一名 DBA
在本网站上提出的另一个问题中,DBA 如何更“对程序员更友好”,我提到我是一名 16 年与 DBA 一起工作的开发人员。与他们一起工作让我意识到,在他们的经验包括数据库理论、离散数学和编程经验的范围内,他们可以看到数据库应该如何工作以及查询应该如何执行。
拥有具有这些背景的 DBA 让我觉得我还在大学里向一些兼职教授学习,但他们真正了解他们的东西。只要 DBA 愿意分享他们所知道的,而不是凌驾于您之上,他们实际上可以成为您开发 SQL 语句(SQL 本身就是一种上下文敏感的编程语言)的导师,其效率与可能的。当然,还有其他平凡的部分,例如执行安装、进行备份、进行软件升级、监控性能指标、生成报告等等。但是作为开发人员,如果您专注于数据库以及针对这些数据库运行的 SQL,随着时间的推移,您将变得如此熟练地使用 SQL,这将成为第二天性,您可以专注于应用程序开发。
对开发人员的要求可能很繁重,但 DBA 也是如此。自愿转换为 DBA 角色的开发人员将注意力从开发和编码转移到我之前提到的平凡的事情上。鉴于此,DBA 与程序员密切合作为 DBA 创造了为任何项目做出创造性贡献的机会,从而使 DBA 的角色变得更加有趣。
作为一名开发人员并被选为 DBA
对于大多数在余生中只看到开发和编码的开发人员来说,这可能就像选择参加真人秀节目Survivor或游戏节目Wipeout一样。新的 DBA 将时间花在与他们多年来为获取数据而联系的那个黑盒(我们都称为数据库)进行交互。
新的 DBA 现在可以创建自己的表和索引。这可能类似于让日本 Hibachi 厨师进入意大利餐厅。厨师可以制作任何东西,但必须意识到有新的食谱、厨房用具、餐具、肉类、香料、蔬菜和许多其他平凡的东西需要适应(卫生、库存、开始时间、工作时间等)。这不仅是过渡时期,也是克服巨大学习曲线的时期。多年来,尽管日本烹饪专业,但必须学习和发展新的经验水平。在这方面,开发人员必须重新教育自己像 DBA 一样思考。
直接从大学/贸易学校培训成为 DBA
到目前为止,这是成为 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。
数据库管理很困难,原因有两个
缓慢的反馈 如果一个人在担任软件架构师的角色时做出了错误的决定,与程序员相比,通常需要更长的时间才能获得负面反馈。程序员通常可以在编译或运行测试时意识到错误,这意味着学习周期非常快。数据库管理员在设计数据库时犯了错误,当他/她发现最终用户将如何实际使用该软件时,他/她可能会得到反馈。这意味着可能需要数年时间才能获得有关数据库设计存在缺陷并需要重新制作的反馈。因此,程序员需要数年时间才能获得经验,而不是几分钟(有时)。
代价高昂的错误 这也是为什么大公司的CEO一般都在50多岁的原因。
成为一个糟糕的 DBA 很容易
不过说真的,DBA 通常对通常对企业成败至关重要的事情负有特殊责任:数据
如果您经营一家公司,那么您很可能热衷于聘请有能力的有经验的人担任该职位
我不认为这是一个“更容易”或“更难”的问题 - 只是一个关于你的数据有多有价值的问题:将卫星放入太空并不比人更难,但你会检查你的总和对后者来说更划算
在我看来,成为一名数据库管理员很容易……直到出现威胁公司的问题,以及修复和恢复你肩上的任何东西的负担。
作为数据库管理员(或网络或系统管理员)是一个需要一定成熟度的职位。这需要一个在压力下工作得很好的人。这并不是说没有年轻人可以用必要的技能来处理这个问题。
此外,从书中学习命令来备份/恢复数据库、优化服务器配置等也很容易。但是当您收到数据库已关闭的警报时,经验就会胜出。
我认识的大多数优秀、扎实的程序员也至少 25 岁。我想有一个与年龄 + 经验 = 好的编码器相关的因素。;)
如果这就是您的意思,成为数据库管理员并不容易。作为 dba,您应该知道很多事情。这也意味着学校,这意味着在另一个人的指导下几年。请记住,数据库是集合逻辑,几乎没有人上学足够长的时间来学习,因此没有人知道。集合逻辑与代数共享一些规则,但引擎(MSSQL、Oracle 等)本身就是这些规则实现的扭曲野兽,因此您不仅必须了解数据库背后的数学,还必须了解您的实现运行在上面。这甚至不包括了解您喜欢的脚本语言(PL/SQL、TSQL 等)。
然后考虑一下,作为 dba,您将负责确保经常将最关键的业务数据委托给您。你需要克服“犯愚蠢的错误”最糟糕的部分,你需要学会一点自制力。大多数 21-23 岁的人还没有学会这一点。我们中的一些人 30 岁还没有。
OT:这就是为什么我说人们至少在 40 岁之前什么都不知道,到那时他们被认为是过山车,而实际上他们才刚刚迈出大步。(说是31岁的人)
我认为成为一名 DBA 并不难。成为一个虽然是。
我想回答添加上面没有很好讨论的另一个方面:视野。
开发人员有各种各样的角色,其中一些(例如,设备驱动程序开发或开发操作系统调度程序)需要非常狭窄的视野和深入研究小问题并从纯技术角度看待它的能力. 还有其他领域需要非常广阔的视野,但技术深度却不那么高(使用您选择的 ERP 框架进行业务应用程序开发)。
数据库是独一无二的,因为要做好它们,您必须能够在这些模式之间快速无缝地移动。数据库是数学引擎,但它们是以非常复杂的方式适应业务环境的数学引擎。因此,一个人必须既能将数学问题作为一个数学问题来解决,又能询问它如何适应其他所有问题。
当您查看高级网络工程师或高级系统管理员时,他们与该领域的高级 DBA 最接近(尽管每个领域都大不相同——优秀的高级系统管理员比优秀的 dba 需要更广阔的视野,并且好的网络工程师需要更深的领域)。
换句话说,要成为一名优秀的 DBA,您需要能够在高级业务需求和与实际磁盘存储相关的非常低级的理解之间移动,并能够过渡到关系数学和纯粹的设计技术问题,所有这些都不需要任何真正的过渡(并且可能在评估特定决定的过程中)。
我担任 DBA 和开发人员。这两个角色非常互补,但我首先是一名 DBA,如果你看到我编写的库,那将是显而易见的。但它们相辅相成的原因是,在开发方面,我可以直接与软件的最终用户进行交互,因此我不断受到关于我愿景的广度的推动,而在数据库方面,我可以挑战自己在深度上。
还有另一条路径,与列出的路径略有不同。
从开发人员开始,然后成为数据库设计师,然后成为 DBA。这条道路在大约 30 年前更为流行,当时数据库开始大量超越基于文件的应用程序,而具有数据库专业知识的人很少而且相差甚远
PS:当我从前程序员转为 DBA 时,程序员常常问我“DBA 的工作不枯燥吗?”
我的回答是:“只有做对了才会无聊!”。:)
我的 DBA 之旅才刚刚开始,但这里有一些人们很难找到这份工作的原因......这很难,因为:
Brad Mc Gehee 写了一本关于它的书,“如何成为一名出色的 DBA”。如果您打算加深问题,值得一读。
祝你好运!