我们一起聊聊DBA的自我修养

01引言

数据库管理员(DBA)承担着保障生产数据库稳定运行的职责,在完成生产变更、事件处置等工作的同时,还应该在哪些方面持续提升自身能力呢?本文从银行DBA的视角,谈一谈“DBA的自我修养”。

02看山是山

看山是山,就是干一行研究一行。DBA每天在做什么?以G行的经验,大概有五个方面的工作:日常维护、环境搭建、升级迁移、开发支持、故障处置。既然做DBA,就得研究怎么把这些工作做好。

日常巡检靠人工做,耗时耗力容易遗漏。G行的经验是从标准化到脚本化、再到工具化。巡检做到位,就有了解决潜在的故障和容量风险的提前量,按标准的变更流程和变更工艺执行更加从容,也就不易出错。“备份天天做,恢复一时难”,G行有句话“不以恢复为目的的备份都是耍流氓”,恢复测试是写进G行科技管理制度的强制要求,每年进行检查考核。

环境搭建效率的提升,在G行一样是经历了从标准化到自动化过程。通过软件的Golden Image加上PaaS平台的自动化交付,标准一致,快捷高效。

至于升级迁移,不仅仅是升级操作本身,还有升级前各种测试,选择最佳的升级窗口、千方百计将对业务的影响最小化,升级后组织保障,桩桩件件都得考虑周详。当我们历尽艰辛终于把成百上千的数据库升级最新版本之后,就会惊喜地发现:最早升级的那个数据库又该升级了…好吧,我们的经验有3点:

1、首先选择合适的软件版本,就是所谓的LTS(Long Time Support)版本,不仅仅是数据库软件,还包括中间件、操作系统乃至硬件,最好保持基本一致的生命周期,避免“你方唱罢我登场”。

2、统筹规划,与应用系统的架构改造、功能升级的计划相结合,提升测试效率,避免资源重复投入。

3、针对不同数据量、不同重要程度和不同停机窗口要求的系统,总结对应的升级实施工艺,分类施法,有标准可依。此外,作为“高效能人士”的DBA,在版本升级这件事情上,还是尽早养成“以终为始”的好习惯吧…

支持开发和测试,是G行DBA的日常工作中时间占比最多的部分。高效数据库真的是设计出来的,而80%的数据库性能问题都是SQL问题。G行一方面将SQL编写和数据库设计的最佳实践写入科技开发规范,同时引入了SQL审核工具进行实际检查。这里要特别提到的执行计划和统计信息收集这两个近乎玄学的东西了。G行根据自身实际需求,定制开发了统计信息收集工具,可以根据表的大小、分区与否、业务运行的时间规律以及表内数据变化的特性,分别收集、复制乃至直接设置统计信息,目的就是保持SQL性能的稳定。即便如此,Hint和SQL Profile / Baseline仍然是必不可少(这里必须给O记加个鸡腿,其他兄弟继续努力吧)。

前面说了日常运维、环境搭建、升级迁移、支持开发四个方面的工作,如果这四个方面做好了,数据库的故障自然会少。但不是说故障处置的工作不重要,相比其他方面的技术问题,这里我们更想说的是的DBA在故障处置中行动标准。DBA参与故障处置,无论是不是数据库的问题,首先应该让自己进入战时状态,一切行动听指挥,严格执行指令,主动报告发现;牢记降低业务影响是故障处置第一目标,快速响应,沟通表达清晰简洁,当断则断。

 图1 

03看山不是山

DBA往往聚焦具体的某个数据库产品的运维和研究,有时候会把一个产品的概念和特性等同于数据库这个技术门类的概念和特性。其实这也不算大问题,DBA本身就是个具体的工作,必须对一个数据库产品学习透彻,不仅仅是操作,更要深入了解原理。只不过在这个数据库产品百家争鸣的时代,如果我们入戏太深,在接受新产品的时候会有些额外的困扰。

例如,PostgreSQL是典型的学院派,遵循中Database Cluster-Databases-Tables的经典关系数据库概念。如果我们把PostgreSQL里的Database Cluster与Oracle里的Cluster(Real Application Cluster)去对照理解,难免不知所云。即便是最基本的“Database”这个词,不同的数据库产品中定义也不尽相同。MySQL里的Database的范围大致与Oracle/DB2中的Tablespace相当,尽管MySQL自己也有Tablespace这个概念;再有,Oracle的同学往往不怎么区分Schema和User,因为在Oracle里面这两个东西实际使用起来没什么区别。而在DB2、MySQL之类其他数据库中,用于认证和权限管理的User和用来组织对象的Schema之间的区别就大了。

看山不是山,这里讨论的不是哲学里共相与殊相的深奥问题,只是想建议DBA跳出某一个产品的范畴,一专多能。可以尝试一下用下面的结构梳理一下不同的数据产品。

图2 

如果想了解数据库内部的原理,推荐学习这些材料:

1、MySQL:MySQL Internal (dev.mysql.com/doc/internals/en/ ,目前MySQL官网上是8.0版本的源代码指南,实际上5.7版本的Internal手册更加适合DBA)。

2、PostgreSQL:The Internals of PostgreSQL (www.interdb.jp/pg/),作者铃木启修,有中文版。

3、Oracle:Oracle Core Essential Internals for DBA,作者Jonathan Lewis(Oracle领域的大神,出自牛津数学系),有中文版。

04看山还是山

“庐山烟雨浙江潮,未至千般恨不消。到得还来别无事,庐山烟雨浙江潮。”苏东坡说的是人生,技术又何尝不是如此。

KV数据库、文档数据库、图数据库、时序数据库…乱花渐欲迷人眼。我们这里想下一个判断,且看验与不验:未来10年甚至更长,关系数据库仍是不可撼动的主流。原因在于:其他数据库解决的是技术问题,而关系数据库尤其是它背后的关系模型可以定义世界。让我再次致敬伟大的Codd博士吧!

只要是关系数据库,就一定有三个必须的功能组建:SQL解析、事务管理和存储引擎。集中式数据库将三个功能做在一起,而分布式数据库往往将三个功能分散在不同节点来提升扩展性。

看山还是山,希望DBA能够从深入到浅出,从本质上理解数据库,对数据库技术发展的趋势形成自己看法。

05总结

如果问到我们的看法,或许可以参考这段对话:

问:“他们认为分布式数据库是未来”。

答:“这是对的。”

问:“那我该怎么办?”

答:“要多想。”

问:“想了以后呢?”

答:“我只能告诉你,那以前要多想。”

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/296667.html<

(0)
运维的头像运维
上一篇2025-05-22 03:01
下一篇 2025-05-22 03:03

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注