我承认每个人的经验和能力都不同。话虽如此,我想避免通过行动为 DBA 设定过高(或过低)的期望;似乎是“管理员”。
鉴于:
- 我是一名深入研究 SQL Server 故障排除和性能问题的开发人员。晚上我用一桶爆米花看 Brent Ozar 的视频。
- 一家有多个部门的公司,这个部门有大约 100 名团队成员
- 许多客户的数据库拥有数百万行的 ETL
- 一个小型 DBA 团队,负责处理这些相同的客户。为新客户或升级客户处理 HAG 问题、备份、恢复、创建新部署。
我不是试图证明我自己的观点。我希望调整我或公司其他人的意见。
问题:
鉴于上述情况,是否应该期望 DBA 只是一个“管理员”?这是你经常看到的吗?
我进入这部肥皂剧(请参阅我最近的其他问题),期望 DBA 被“期望”深入研究。我开始相信我误解了,我倾向于成为一名 DBA——成为一名“管理员”。
我欢迎其他人的经验,也许是关于完善这个问题的建议。
标题就是这样,只不过是一组单词,其含义的相关性取决于您如何在域的上下文中定义该含义。在这种情况下,该域就是您的公司,因此你们应该定义 DBA 角色以适应业务需求(实际上是在 DBA 可以做什么的范围内)。
DBA 是我发现的那种角色之一,我发现它会演变为许多帽子或交叉类型的职位。理由是,这是一个由许多人组成的职业,他们在过去的生活中要么是软件开发人员,要么是系统管理员,或者两者都不是。
作为一个从软件开发人员到常驻 DBA 到另一家公司的实际 DBA 并回到准软件开发人员/DBA 的人,我体验了作为 DBA 而不是服务器的大部分数据库开发和性能调整方面,数据库管理——尽管我已经并且仍然在管理其中的一些方面。这是因为我以前作为开发人员的经验,并且因为我工作的公司需要一个既能编写代码又能从架构和查询调优的角度帮助优化数据库层性能的人。
因此,总而言之,在本质上只是管理数据库系统并在服务器内部亲自动手的人、纯粹从事数据库设计和性能调整的其他人以及其他混合的人之间存在着各种各样的 DBA 角色实际软件开发(甚至在数据库层之外)的职责,并进行性能调整和数据库管理。
我认为 DBA 应该主要被视为实例的管理员,负责实例的正常运行、数据存储、效率和数据库的可用性,同时也负责验证程序和流程的正确执行,以确保均衡利用资源。
根据我的经验,程序员必须将它视为必须从项目的最早阶段咨询和参与的盟友。他的观点很有价值,与程序员的观点不同。程序员的核心是他的应用程序,一个依赖于实例的整个应用程序生态系统的 dba。
他们的关系必须是协同的,而不是冲突的。
如果您面临浅层问题,则无需进行任何深入研究。
如果您面临复杂的问题但经验不足,那么您将无法进行深入研究。其他人将主导这些,因为复杂的问题很少,聪明的人会寻找它们。
如果您是唯一的 DBA,而其他人经验不足(他们会将工作委派给数据库而不考虑自己在做什么),那么您将不得不进行深入研究。这是典型的 Web 开发环境中的情况。即使有人说您应该或不应该,您也应该进行如此深入的研究。
这种复杂的计算和开发环境有许多利益相关者。如果您的组织达到一定的成熟度级别,那么您将拥有企业开发人员/架构师以及数据库开发人员/架构师。在协作的自我批评环境中,企业开发人员意识到他们解决问题的技巧是有用的,但存在盲点。数据开发者做有用的东西也有盲点,希望这些盲点和企业开发者不一样。深潜将有助于进一步推动前沿。
答案最初作为评论留下:
作为一名 DBA,我所做的不仅仅是管理。我确保事情表现得更好,并确保开发人员在与系统交互时不会试图绕过所涉及的规则。我的工作是保护数据免受外部和内部威胁,无论它们是恶意的还是其他的。我教人们有关系统的知识。我回答了企业提出的新问题。这些答案 - 希望 - 会导致更好的决策。“任何人”都可以管理数据库,但不是每个人都可以管理数据库。-马蒂戈
会因公司而异。Brent Ozar 对此有一个快速的图表,但公司越大/越老,根据我的经验,责任越小。较小的/初创企业将更多地依赖混合数据工程师或站点可靠性工程师来完成经典的 DBA 职责 + 自动化 + 调优 + 代码编写。-lowlydba-约翰-米
DBA 不一定是“管理员”
你所指的是一个
Production DBA
但也
Development DBA
有人专注于性能调优和编写查询。在这里你可以阅读更多(这是除了 lowlydba 的链接,也可以查看)
https://www.brentozar.com/sql/picking-a-dba-career-path/
贵公司的 DBA 是否应该“深入研究”运行时查询性能问题,我认为这取决于对“他们被聘用的目的是什么?”的问题的回答。和“他们的工作描述是什么?”
如果某个人的工作描述没有严格说明
Production DBA
(他们期望执行的唯一功能是备份、HAG、保持服务器上的灯、自动化等),那么“深度潜水”不仅是预期的,而且您有权要求它。优秀的 DBA 不会等待某人提出要求,而是主动提前解决问题,不过