您当前的位置:首页 > 电脑百科 > 数据库 > 百科

DBA的一天是怎样的?运维工程师告诉你答案

时间:2022-08-09 14:26:52  来源:今日头条  作者:TDengine涛思数据

小 T 导读:作为薪水较为可观的 IT 职业之一,DBA 貌似是一个门槛低、活还少的技术岗位,只要接受过相应的系统性训练,应该就可以成功入门。但想要真正胜任这个岗位,实际却并不容易。DBA 的工作到底是怎样的?它的前景如何?想做好 DBA 又需要具备哪些能力?我们采访了两位有丰富工作经验的 DBA 和运维工程师,下面一起看一看他们的感悟吧。

DBA 的一天是怎样的?

分享人:涛思数据交付工程师 董延琼

(注:本章节 DBA 特指运维 DBA)

本人不仅是一个在 IT 行业摸爬滚打(混吃等死)、兢兢业业(得过且过)十多年的从业者,也是一个有着近十年丰富工作经验的 DBA(老油条)。在刚进职场的五年里,我在一家中字头下面的三产做运维,主机、数据库都有接触,后来被朋友“坑”去创业公司玩了三年 MySQL,再后来继续给国字头做了三年数据库(Oracle)运维,现在的职场身份是时序数据库(Time Series Database)TDengine 团队的交付工程师。

郑重声明:那种一杯茶一包烟,一张表导一天的快乐日子,我根本就没经历过。

关于运维 DBA 的工作,其实和中医治病的理念有点像,在此引用一下魏文侯问扁鹊三兄弟医术的故事,很有意思。对话是这样的:

魏文候问扁鹊:“你们兄弟三人,哪一位医术最精呢?”

扁鹊回答说:“大哥医术最精,二哥次之,我最差。”

魏文候又问:“那为什么我没有听说过他们呢?”

扁鹊解释说:“大哥于病视神,在疾病还未形成时就将其除掉了,大家都没怎么见过他治病,所以他的名声传不出家门;二哥治病,是在疾病刚刚萌芽时就治愈它了,大家都只见到他治一些不严重的小病,所以他的名声也不出于邻里之间;而我通常是等病发展到一定程度才发现,通过针刺血脉、投汤药、割皮解肌来治病。大家都认为我擅长治疗各种疑难杂症,因此闻名于诸侯之间。”

现在估计很多 DBA 都会有类似的想法。理想的工作就是每天处理一下小问题,调调优,防患于未然,争取将大问题都掐死在摇篮里,剩余时间就是看看资料,提升一下自己,平平淡淡地“混过”每一天。但很不幸的是,如果真的抱着这样的想法,那么你离被裁也就不远了,因为你在老板眼里就是个无所事事,混迹在职场中打酱油的“老油条”。

其实我们换位思考一下也就能理解了,如果你是老板,一个员工整天没啥正事,除了聊天打屁,就是上网看书,系统一年也没有出现过啥大问题,身为老板的你是不是也感觉这人力成本花的有点冤。

而与之相反的另一种情况是,你的员工每天忙忙碌碌,加班处理问题,好几次重大问题都及时有效地解决了,避免造成更重大的损失。你是不是感觉这招人的钱花的还比较值,甚至年终还想发点钱鼓励他再接再厉。

转到价值观积极的一面,如果你是个积极上进(年少无知)的 DBA,每天应该怎么安排自己的工作呢?

其实和运维相关的工作,性质都差不多,不管是运维 DBA、主机工程师或网络管理员。说到运维,就一定要说一下墨菲定律(Murphy’s Law),放在运维领域简直太有用了。

墨菲定律主要包括以下四方面:

  • 任何事都没有表面看起来那么简单
  • 所有的事都会比你预计的时间长
  • 会出错的事总会出错
  • 如果你担心某种情况发生,那么它就更有可能发生

对应到运维领域就是:

  • 简单的小问题,可能是某个丧心病狂的程序员的大 Bug,一旦忽视,就可能把你尽心维护的数据库搞崩;
  • 备份恢复的时间,永远都超过你所估计的时间;
  • 高危操作通常都会出事(普通操作一样有风险);
  • 如果你担心库挂了没有备份恢复,那么备份大概率不能用。

相应的应对措施则是:

  • 刨根求底,每个小问题都搞清楚,不放弃任何隐患;
  • 把计划时间乘以 10,能多长就多长(把泡茶、抽烟、上厕所也算在内);
  • 提前做好预案的预案,提前为某个操作失败想办法;
  • 每天检查备份,条件运行多备几份,反正存储不花自己的钱。

将以上四点贯彻到底,你就拥有了无比充实(累死累活)的运维 DBA 的一天。当然事情也不是绝对,以上大部分内容都是在讨论传统的关系型数据库,如 Oracle、MySQL、PostgreSQL 等,对于其它的诸如 InfluxDB、TDengine、TiDB 等新兴数据库就又另当别论了。

以 TDengine 为例(当然这种安装包不到 100 MB 的 Database 通常是不配拥有专属 DBA 的):

  • 安装步骤不到三步
  • 运维命令不超过 50 个
  • 参数不到 100 个

DBA 除了升级、重启,貌似就没啥工作可干了。

DBA 的发展已经没前途了吗?

分享人:涛思数据交付工程师 董延琼

如果笃定地说数据库 DBA 没有前途,那可能有些武断了。但某些 DBA 的前途确实渺茫了,比如 DB2 和 Sybase 的 DBA 们。可能有的小伙伴不太了解这两个产品,要知道,DB2 当年的风头还在 Oracle 之上。不禁要缅怀一句,“舞榭歌台,风流总被,雨打风吹去”。

至于数据库 DBA 这个新兴的小鲜肉,说不定哪天也会被扫进历史的垃圾堆。但还不是现在。

我们随便打开一个招聘网站,输入 DBA 就可以看到招聘的职位,薪资范围在 15~60K 之间,看起来还是蛮诱人的。

 

从涉及的数据库产品来看,主要以 Oracle、MySQL、PostgreSQL 为主。仅从招聘信息来看,数据库 DBA 的“钱途”还是有的。但在这个“盛世”下,有人还在担心数据库 DBA 的未来发展,不过也是有迹可循的。

2018 年,Oracle 推出了全球首款,也是唯一一款自治数据仓库——Oracle Autonomous Database Warehouse ,它可以用更低的成本为客户提供更高的性能、可用性和安全性,带来现代化的云端体验,为全面迎接自治时代成功奠基。

“自治(Autonomous)”是云技术的一个跨越,它不仅可以在无需人工干预的情况下,对业务运行的设施进行自动更新、调整和修复,还能帮助企业节约管理成本、快速部署项目并显著降低风险,为企业客户带来全新的上云体验。这意味着 Oracle 已经开始抢它自己 DBA 的饭碗了。

不止是 Oracle 这种老牌数据库厂商,新的数据库厂商其实也在进行运维革命了。新兴的时序数据库 TDengine 在其官网首页中描述产品的特性时,提到了零管理:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成。不论技术上如何实现,至少在理论上,已经致力于尽力减少运维工作了。

 

我记得之前上 MBA 时,老师组织过一场讨论,论题是 AI 会不会取代大部分人类工作。我当时的观点很明确,会的,因为这就是我们研究 AI 的目的。

最开始入职 IT 行业时,搞定一个系统上线是个非常复杂的工作,需要先将服务器上架,再安装相应的操作系统,还要配置网络、连接存储,随便搞搞就要一周的时间。发展到现在,阿里云从下单到开通不到十分钟,整个过程中的主机工程师、网络工程师、存储工程师等古早职业都消失了。

要知道,阿里云不止有云主机,还有云数据库,你不需要再关心底层架构,只有付钱就可以了,甚至不需要进行维护,最多关心一下磁盘是否够用,DBA 的工作就这样被极大地简化了。如果从这个角度来看,数据库 DBA 的前途确实堪忧了。

那么已经是 DBA 的同学,或是刚成为 DBA 的同学应该怎么办呢?不论任何职业,只要不想被淘汰,那就必须让自己做的工作成为不可取代的那部分。

那 DBA 有哪些工作是很难取代的呢?我们先来梳理一下 DBA 的工作内容

  1. 业务建模:根据业务场景,设计库和表结构
  2. SQL 优化:对业务 SQL 进行优化,提升效率
  3. 安装部署:部署数据库产品
  4. 系统调优:调整数据库参数,优化性能
  5. 应急处理:处理紧急问题,如数据库故障、数据误删除
  6. 备份恢复:不需解释

对于以上工作内容,第 3、4 项在云环境里已经没什么意义了;而第 2 项,对于拥有高级解析器的数据库产品,如 Oracle 来说,也没什么必要了;第 6 项完全看实际需要,简单的备份恢复自动化就可以完成,更定制化的则需要人工干预。

那么现在来看,就只剩下了第 1、5 项工作必须要人工来完成了。每个系统所对应的业务场景都是独一无二的,并不存在一个“包打天下”的统一的建模方式,从这个角度来说,快速熟悉业务场景是 DBA 至关重要的能力。

只要是 IT 系统,不管设计的多么智能,都可能会出现 Bug。能够深入了解产品、快速应对意外情况、及时提出解决方案的 DBA ,在此时就是最稀缺的。

综上所述,虽然目前数据库 DBA 的前途和“钱途”都还是有的,但也不能盲目乐观,还要不断提升自己才不会被淘汰掉,追赶我们的不止是技术,还有“后浪”。

想做好时序数据库 DBA,需要具备哪些能力?

分享人:涛思数据交付工程师 肖波

想胜任 DBA 这个职业,应该具备哪些必备能力?大家讨论的比较多的大都是关系型数据库的 DBA ,下面我会从时序数据库角度来谈下个人观点。

  • 持续学习的能力

时序数据库是一个新的方向,它采用的技术架构普遍与关系库不同。例如,在数据索引结构的选择上,关系型数据库大多采用 B+ 树,时序数据库则多采用 LSM 树;而且结合时序数据的特点,时序数据库多采用列式存储方式。

以 TDengine 为例,它采用就是 LSM 树,加上列式存储、一个设备一张表的设计,在应对物联网时序数据的场景时就会很有优势。如果你还停留在 B+ 树的语境里,那将很难理解这种设计的优势和特点,高效运维自然无从谈起。这种技术架构的差异导致技术实现也会有很大不同,DBA 只有不断学习,才能掌握关键点,做好本职工作。

  • 对计算机系统深入理解

目前数据库系统大多运行于 linux 系统上,一个合格的 DBA 不能只满足于对计算机系统的一般性认识,还需要深入了解系统的工作原理,对内存分配回收、进程调度、网络管理等都要有深刻的理解,对如何分析、定位操作系统问题也要有深刻认识。只有做到这些,才能迅速定性、定位实际工作中遇到的问题。

  • 深入了解存储系统

目前的时序数据库大多采用分布式架构,在分布式架构下如何保证数据的一致性、特别是海量数据的一致性是一个特别大的挑战。传统大数据平台有利用 HBase 作为存储系统的,新一代的时序数据库有自研存储系统的,也有采用开源的分布式存储系统作为存储方案的。作为一个 DBA,确保数据安全是最重要的工作,这就要求你必须深入了解所使用的数据库的存储架构,才能制订出合理的数据备份、恢复、灾备方案。

  • 熟悉主流高级语言的数据库接口及框架

时序数据库的写入吞吐一般比关系型数据库要高若干个数量级,一般后者每秒写入数百条记录就算不少了,但时序数据库每秒写入经常要达到几十万,甚至数百万条记录。聚焦写入问题上,除了数据库本身的性能调优,还涉及到各语言连接器、框架的使用方法是否正确。要想成为合格的时序数据库 DBA,你需要对连接器、框架非常了解。

当然,除了写入,查询是另一个重点。调优时序数据库的查询性能,除优化本身参数外,对主流语言框架如何构造查询语句也要有深入了解,这会大大缩短很多复杂查询问题的定位时间。

  • 对数量级的敏感

随着各行业的不断发展,海量的数据写入、读出带来的问题和挑战比起从前更加频发,定性问题的关键是需要 DBA 对数量级有超过一般人的敏感度。除了 CPU 负荷外,磁盘吞吐量、IOPS、网络吞吐、PPS、队列长度深度、各类耗时等都需要 DBA 反复不停地比较、计算,直到找到问题的主要原因。对数量级的高敏感度可以大大减少问题定性、分析时间。

除了上述的能力加持外,DBA 最重要也最基础的能力其实是——基础知识牢固、逻辑分析能力强、思维清晰。很多人认为有 Oracle 的认证、微软的认证很重要,我觉得那只能证明他曾经具有一定的学习能力。一个 DBA 的能力强弱,具体体现在他定位、解决一个问题的速度,这里面除了经验以外,扎实的基础知识、良好的训练、科学的分析方法论才是可靠的“屠龙刀”。

写在最后

如果你有志于成为一名时序数据库 DBA,那你一定不能错过 8 月 13 日我们在北京·昆泰嘉瑞文化中心举办的「TDengine 开发者大会」,本次会议上不仅会有多位基础软件领域知名大咖贡献精彩演讲与趋势解读,还会有金融、车联网等行业知名企业分享数据架构升级经验。此外,TDengine 3.0 版本也将重磅发布,核心研发人员将首次对外分享创新思路,进一步加深你对时序数据库技术实现和架构创新的思考。



Tags:DBA   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
DBA视角:把数据库放入Docker是一个馊主意
对于无状态的应用服务而言,容器是一个相当完美的开发运维解决方案。然而对于带持久状态的服务 —— 数据库来说,事情就没有那么简单了。生产环境的数据库是否应当放...【详细内容】
2023-12-18  Search: DBA  点击:(200)  评论:(0)  加入收藏
谁是DBA背锅侠的幕后黑手?说说那些不懂装懂的人
最近整体的风向都朝着不好的方向在走,或许到底了就好了,根据一些专家和经济学家判断,我们还能坏到哪里去。当然今天说的不是经济,而是DBA到底应不应该当背锅侠,或者谁是DBA当背锅...【详细内容】
2023-11-16  Search: DBA  点击:(207)  评论:(0)  加入收藏
DBA致命的低级工作?超大型系统数据库版本质量控制
宇文湛泉,现任金融行业核心业务系统DBA,主要涉及Oracle、DB2、Cassandra、MySQL、GoldenDB、TiDB等数据库开发工作。这似乎是DBA工作中最为无聊、繁琐以及最没有技术含量的事...【详细内容】
2023-08-17  Search: DBA  点击:(320)  评论:(0)  加入收藏
一个Oracle DBA的角度来看PostgreSQL的运维与优化
PG数据库目前已经成为最热门的开源数据库之一,特别是因为其开源协议十分适合商业化,因此大量的商用数据库,包括大量的国产数据库也都基于PG的开源代码进行研发。作为一个曾经的...【详细内容】
2023-05-06  Search: DBA  点击:(328)  评论:(0)  加入收藏
我们一起聊聊DBA的自我修养
01引言数据库管理员(DBA)承担着保障生产数据库稳定运行的职责,在完成生产变更、事件处置等工作的同时,还应该在哪些方面持续提升自身能力呢?本文从银行DBA的视角,谈一谈“DBA的...【详细内容】
2023-03-07  Search: DBA  点击:(153)  评论:(0)  加入收藏
Feedback与 Review有何区别,外贸人一定要清楚
做外贸行业的也许对于feedback和review都有所了解,或者是经常地去使用,但是具体到他们到底有着什么样的区别,却有难以说出个所以然。当我们在选择一个平台作为推广渠道之一的时...【详细内容】
2022-11-03  Search: DBA  点击:(395)  评论:(0)  加入收藏
DBA的一天是怎样的?运维工程师告诉你答案
小 T 导读:作为薪水较为可观的 IT 职业之一,DBA 貌似是一个门槛低、活还少的技术岗位,只要接受过相应的系统性训练,应该就可以成功入门。但想要真正胜任这个岗位,实际却并不容易...【详细内容】
2022-08-09  Search: DBA  点击:(282)  评论:(0)  加入收藏
最新DBA薪资一览报告:你的薪资达标了吗?
近日,2021年平均工资公布,IT业平均工资最高,非私营单位年薪超20万元。此消息一发布,迅速引起热议。作为IT行业中的DBA,薪资情况如何呢?最近俄乌冲突,数据库热度持续攀升,DBA的薪资是...【详细内容】
2022-05-26  Search: DBA  点击:(252)  评论:(0)  加入收藏
2022年,你给家里的电视配上Soundbar了吗?
一直以来,Soundbar都在国外大火,国内却鲜有人知,很少有家庭会把为电视配备Soundbar作为一定要进行的步骤。但近几年,形势已经发生变化,为家庭电视配备Soundbar在国内渐渐流行起来...【详细内容】
2022-03-10  Search: DBA  点击:(226)  评论:(0)  加入收藏
大规模多存储场景的数据库选型与服务平台建设(对DBA、开发、测试、产品同时友好)
肖博 vivo数据库架构师 担任vivo通用存储研发团队负责任人,负责vivo通用存储产品和服务平台研发工作。 曾就职于百度数据库团队,负责 MySQL、Redis等方向的运维研发。大家...【详细内容】
2020-07-16  Search: DBA  点击:(275)  评论:(0)  加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  京东云开发者    Tags:向量数据库   点击:(5)  评论:(0)  加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...【详细内容】
2024-04-03  红石PG  微信公众号  Tags:SQL 函数   点击:(5)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28    51CTO  Tags:NoSQL   点击:(14)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  dbaplus社群    Tags:数据库连接池   点击:(14)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  DeepHub IMBA  微信公众号  Tags:数据可视化   点击:(7)  评论:(0)  加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...【详细内容】
2024-03-20  码上遇见你  微信公众号  Tags:分库分表   点击:(15)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...【详细内容】
2024-03-18  dbaplus社群    Tags:SQL   点击:(6)  评论:(0)  加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...【详细内容】
2024-03-14  京东云开发者    Tags:慢SQL   点击:(5)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12    InfoQ  Tags:数据库   点击:(32)  评论:(0)  加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, '研发部(RD)', &#39...【详细内容】
2024-03-07  程序员恰恰  微信公众号  Tags:SQL优化   点击:(20)  评论:(0)  加入收藏
站内最新
站内热门
站内头条