前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对不起,你所掌握的DBA 进阶,只是别人眼中的入门

对不起,你所掌握的DBA 进阶,只是别人眼中的入门

作者头像
Lenis
发布2020-06-15 14:24:40
7040
发布2020-06-15 14:24:40
举报
文章被收录于专栏:有关SQL有关SQL

图 | 榖依米

我习惯把 DBA 分成 2 个方向, 3 种层次。

方向:

  • 运维级 DBA
  • 研发级 DBA

层次:

  • 单机
  • 集群
  • 分布式

在每个方向上,都有这三种层次,所以重点解说层次。

仅凭嘴皮子,很难让初学者有个直观的印象,那么我就用非常受欢迎的漫威人物钢铁侠来解释下:

单机版的数据库管理软件,起始于 20 世纪 70 年代,基于 IBM System R 的模型,各家软件公司开发了自己的数据库。这些数据库满足于日常记录和统计功能的实现。此时的功能比较单一,所以这个时代的 DBA 能够交付出一个完整,稳定,安全的数据库,就可以了。

(图来自:什么值得买)
(图来自:什么值得买)

每个版本都在改进一些功能,不停地升级换代,但还是属于单机作战的年代

(图来自:什么值得买)
(图来自:什么值得买)

2000 年时,Internet 极速发展,各种网络应用以指数级的方式增长。单机数据库无法稳定支撑动辄百万流量的请求,所以集群计算有了发展,比如 Oracle RAC 的出现。此时可以算作是微分布式数据库的开端。一般是以 2 - 8 台计算节点作为一个集群。据 Oracle 官方文档,Oracle 10g 开始支持 100 个节点的集群。这么大的集群,少见。

Technically and since Oracle RAC 10g Release 2, 100 nodes are supported in one cluster

(图来自:Google搜索)
(图来自:Google搜索)

双机作战,能够对抗更多,更强大的敌人

时代,用户,应用都在不停地进化,越来越多的请求需要被数据库扛起来。此时应用请求,成本,可控性,带来了前所未有的挑战。以去 IOE 拉开的分布式数据库时代降临。

(图来自:zhaishe.net)
(图来自:zhaishe.net)

多机数据库集群,已经不能对抗洪流了,此时依靠各种云计算,还有胜算的把握。其中以 Amazon Redshift, Google Cloud Platform, Microsoft Azure 为中坚力量。全自动感知流量请求,自动分配数据库计算节点。

从数据库的发展来看,时代对于 DBA 的要求越来越高了,但需求的人数,却是越来越低

当然,我也有可能是错的。在互联网如此活跃的年代,说不定哪天历史又有了转折点。比如,一带一路走通走顺,我们很多企业就会出海,那么给 DBA 行业又会带来旺盛的需求。

不管怎样,我还是要把看到的历史以及 DBA 技能树都讲一讲,以便留个参考。

DBA这个职业,在10年前算是个黄金职业。一个优秀的DBA,从坐上计程车那刻起,已经开始在向甲方收费了。典型的金主是银行和电信行业。牛新庄博士,以当时高达年薪 200 万的数据库顾问,领衔全国。

在互联网时代下,尤其云计算出来之后,我不大再鼓励年轻人去走 DBA 这条路了,除非你特别喜欢。云计算大环境对 DBA 的要求更多,更严,但 DBA 能发挥的作用也更大。

原本一个DBA,只能负责一个数据库,因为项目就这么大。但以这个 DBA 的能力, 其实管理100个, 1000个数据库,一点问题没有。无非就是把脚本多加一行 foreach. 如果企业把数据库都上了云,招这么一个超级能打的 DBA, 意味着另外 99 个,999 个 DBA 就得失业。

如此严峻的环境,如果不能打消你DBA的念头,那么请继续往下读。

首先,从安装数据库软件说起。很多朋友,无论是做开发,还是运维,碰到的一个老大难的问题,便是安装。有朋友会说,这能有啥难度,Windows 上一路 Next,安装就成功了呗。

如果你玩数据库,只在 Windows 上玩, 那么你的数据库生涯也璀璨不到哪里去。再者,Windows 安装,也是非常有讲究的。安装一台要考虑两个方面的事情,能不能做到静默安装,能不能做到干净卸载,再安装。很多玩 SQL Server 的朋友,或许知道我在说啥,SQL Server 从 Windows 卸载过后,再安装一遍,大概率是有问题的。

再深入一点,一台数据库安装没问题,但如果要你同时安装 20台,200台呢?你准备拿着安装盘,在机房里熬一夜?

互联网时代,基本是以流方式处理数据的。和以前早高晚峰,有固定时间点不一样,这台数据库必须按照7*24小时,做好管理和配置。不能白天好好地服务着上万人,一到晚上就崩溃。所以高可用,故障转移,集群管理,作为 DBA 是绕不过去的坎儿。

如果说安装是基本功,那么设计数据库架构就是内力大比拼了。

有些 DBA 维护的数据库,单机就能搞定上每日千万流量,而有些 DBA 维护的库,10 万流量,一天都要崩个好几次。这就是功底所在。

我们从头再捋一遍,作为DBA,一路要升级打怪,掌握的技能分别有,安装和配置数据库,维护高可用的数据库单机或集群,搞定高峰流量下数据库的反应。

接下来是真正热爱数据库的人,会去深入地研究和实现的事情。

  • 运维方向
  • 研发方向

上面所有的知识点,入门的,进阶的都是属于运维方向。目的是熟练地使用一种或多种商业数据库产品。

高级数据库管理员或老练的 DBA 都有哪些逆天的技巧 https://www.zhihu.com/question/28071615/answer/39429981

ID (mysqlops)的回答非常好:

一等一的DBA,从不会让数据库处于一个崩溃或者稍有不适的境地;第二等的 DBA,数据库稍有不适,立马能够察觉,并且修复;第三,等数据库崩溃或者明显低延迟了,只要出手就能即刻恢复。

这就是运维级 DBA 的三个境界。

但运维 DBA 也有苦恼的时候。若发现,商业数据库无法满足需求时,运维级DBA就束手无策了。就像 TiDB, OceanBase 对付的业务,无法用 Oracle 完成,那么只能靠自研。这便是 DBA 的进阶,此时 DBA 已经不再是单纯管理数据库的人,而必须拥有设计数据库产品的能力。

举个例子,MySQL的数据复制,局限于同源数据互传。假设要把 MySQL 同步一份到 Oracle 中去,是不是能想到解析 binLog 的方式?

再拿 TiDB 来说。它是 OLTP & OLAP 一站式解决方案的分布式数据库软件。能把 OLTP, OLAP, 分布式综合在一起的数据库,国内首创。国外对标的是 Google 的 Spanner /F1. 基于 Google 的 Spanner 论文, TiDB 引领了 NewSQL 在国内的市场。

改造数据库,实现一个前所未有的功能,并帮助大量用户顺利迁移。这事儿属于研发 DBA 的正经职责。

之前我写过一篇《那些必读的数据库领域论文》。不管是分布式,还是传统数据库,在这篇文章中一一列举了他们实现背后的理论基石,即论文。

即使我们对再造轮子,没有太大的欲望,对改变世界没有太多想法,读一读这些论文,碰到性能问题时,也能说出个一二来,再不济,面试的时候,拿出来撩一下面试官,说不定还能加分。

研发级 DBA,那是少有的 DBA 中的精英。与使用 Oracle, MySQL, SQL Server 等商用数据库管理软件的 DBA 不同,他们要做的事情,是改写数据库关键组件,比如优化器,分布式事务,倒排索引,元数据管理等模块。

这需要对操作系统,存储,网络,编程都有过硬的知识。没有十多年的浸淫,基本出不来活儿。比如国内有陶建辉,盖国强,黄东旭,OceanBase 团队等等。这些人物都忙着自己开发产品,或者在门票价格动辄近万的大会上发言。

再说一遍,你所认为的 DBA 进阶,可能是别人眼中的入门。包括我在这里所说的进阶,可能只是微不足道的一点基础知识而已。

--完--

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有关SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库管理
数据库管理(Database Management Center,DMC)是一个高效,安全,可靠的数据库一站式管理平台。DMC 提供可视化的库管理、实例会话管理、SQL 窗口、SQL 安全审计、SQL 变更审批、实时监控、操作审计等数据库管理能力,集成诊断优化和数据可视化分析能力,从而简化和规范数据库管理操作、降低数据库运维门槛、提升运维效率。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档