小 T 導(dǎo)讀:作為薪水較為可觀的 IT 職業(yè)之一,DBA 貌似是一個(gè)門檻低、活還少的技術(shù)崗位,只要接受過相應(yīng)的系統(tǒng)性訓(xùn)練,應(yīng)該就可以成功入門。但想要真正勝任這個(gè)崗位,實(shí)際卻并不容易。DBA 的工作到底是怎樣的?它的前景如何?想做好 DBA 又需要具備哪些能力?我們采訪了兩位有豐富工作經(jīng)驗(yàn)的 DBA 和運(yùn)維工程師,下面一起看一看他們的感悟吧。
DBA 的一天是怎樣的?
分享人:濤思數(shù)據(jù)交付工程師 董延瓊
(注:本章節(jié) DBA 特指運(yùn)維 DBA)
本人不僅是一個(gè)在 IT 行業(yè)摸爬滾打(混吃等死)、兢兢業(yè)業(yè)(得過且過)十多年的從業(yè)者,也是一個(gè)有著近十年豐富工作經(jīng)驗(yàn)的 DBA(老油條)。在剛進(jìn)職場(chǎng)的五年里,我在一家中字頭下面的三產(chǎn)做運(yùn)維,主機(jī)、數(shù)據(jù)庫都有接觸,后來被朋友“坑”去創(chuàng)業(yè)公司玩了三年 MySQL,再后來繼續(xù)給國字頭做了三年數(shù)據(jù)庫(Oracle)運(yùn)維,現(xiàn)在的職場(chǎng)身份是時(shí)序數(shù)據(jù)庫(Time Series Database)TDengine 團(tuán)隊(duì)的交付工程師。
鄭重聲明:那種一杯茶一包煙,一張表導(dǎo)一天的快樂日子,我根本就沒經(jīng)歷過。
關(guān)于運(yùn)維 DBA 的工作,其實(shí)和中醫(yī)治病的理念有點(diǎn)像,在此引用一下魏文侯問扁鵲三兄弟醫(yī)術(shù)的故事,很有意思。對(duì)話是這樣的:
魏文候問扁鵲:“你們兄弟三人,哪一位醫(yī)術(shù)最精呢?”
扁鵲回答說:“大哥醫(yī)術(shù)最精,二哥次之,我最差。”
魏文候又問:“那為什么我沒有聽說過他們呢?”
扁鵲解釋說:“大哥于病視神,在疾病還未形成時(shí)就將其除掉了,大家都沒怎么見過他治病,所以他的名聲傳不出家門;二哥治病,是在疾病剛剛萌芽時(shí)就治愈它了,大家都只見到他治一些不嚴(yán)重的小病,所以他的名聲也不出于鄰里之間;而我通常是等病發(fā)展到一定程度才發(fā)現(xiàn),通過針刺血脈、投湯藥、割皮解肌來治病。大家都認(rèn)為我擅長治療各種疑難雜癥,因此聞名于諸侯之間。”
現(xiàn)在估計(jì)很多 DBA 都會(huì)有類似的想法。理想的工作就是每天處理一下小問題,調(diào)調(diào)優(yōu),防患于未然,爭(zhēng)取將大問題都掐死在搖籃里,剩余時(shí)間就是看看資料,提升一下自己,平平淡淡地“混過”每一天。但很不幸的是,如果真的抱著這樣的想法,那么你離被裁也就不遠(yuǎn)了,因?yàn)槟阍诶习逖劾锞褪莻€(gè)無所事事,混跡在職場(chǎng)中打醬油的“老油條”。
其實(shí)我們換位思考一下也就能理解了,如果你是老板,一個(gè)員工整天沒啥正事,除了聊天打屁,就是上網(wǎng)看書,系統(tǒng)一年也沒有出現(xiàn)過啥大問題,身為老板的你是不是也感覺這人力成本花的有點(diǎn)冤。
而與之相反的另一種情況是,你的員工每天忙忙碌碌,加班處理問題,好幾次重大問題都及時(shí)有效地解決了,避免造成更重大的損失。你是不是感覺這招人的錢花的還比較值,甚至年終還想發(fā)點(diǎn)錢鼓勵(lì)他再接再厲。
轉(zhuǎn)到價(jià)值觀積極的一面,如果你是個(gè)積極上進(jìn)(年少無知)的 DBA,每天應(yīng)該怎么安排自己的工作呢?
其實(shí)和運(yùn)維相關(guān)的工作,性質(zhì)都差不多,不管是運(yùn)維 DBA、主機(jī)工程師或網(wǎng)絡(luò)管理員。說到運(yùn)維,就一定要說一下墨菲定律(Murphy’s Law),放在運(yùn)維領(lǐng)域簡(jiǎn)直太有用了。
墨菲定律主要包括以下四方面:
- 任何事都沒有表面看起來那么簡(jiǎn)單
- 所有的事都會(huì)比你預(yù)計(jì)的時(shí)間長
- 會(huì)出錯(cuò)的事總會(huì)出錯(cuò)
- 如果你擔(dān)心某種情況發(fā)生,那么它就更有可能發(fā)生
對(duì)應(yīng)到運(yùn)維領(lǐng)域就是:
- 簡(jiǎn)單的小問題,可能是某個(gè)喪心病狂的程序員的大 Bug,一旦忽視,就可能把你盡心維護(hù)的數(shù)據(jù)庫搞崩;
- 備份恢復(fù)的時(shí)間,永遠(yuǎn)都超過你所估計(jì)的時(shí)間;
- 高危操作通常都會(huì)出事(普通操作一樣有風(fēng)險(xiǎn));
- 如果你擔(dān)心庫掛了沒有備份恢復(fù),那么備份大概率不能用。
相應(yīng)的應(yīng)對(duì)措施則是:
- 刨根求底,每個(gè)小問題都搞清楚,不放棄任何隱患;
- 把計(jì)劃時(shí)間乘以 10,能多長就多長(把泡茶、抽煙、上廁所也算在內(nèi));
- 提前做好預(yù)案的預(yù)案,提前為某個(gè)操作失敗想辦法;
- 每天檢查備份,條件運(yùn)行多備幾份,反正存儲(chǔ)不花自己的錢。
將以上四點(diǎn)貫徹到底,你就擁有了無比充實(shí)(累死累活)的運(yùn)維 DBA 的一天。當(dāng)然事情也不是絕對(duì),以上大部分內(nèi)容都是在討論傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,如 Oracle、MySQL、PostgreSQL 等,對(duì)于其它的諸如 InfluxDB、TDengine、TiDB 等新興數(shù)據(jù)庫就又另當(dāng)別論了。
以 TDengine 為例(當(dāng)然這種安裝包不到 100 MB 的 Database 通常是不配擁有專屬 DBA 的):
- 安裝步驟不到三步
- 運(yùn)維命令不超過 50 個(gè)
- 參數(shù)不到 100 個(gè)
DBA 除了升級(jí)、重啟,貌似就沒啥工作可干了。
DBA 的發(fā)展已經(jīng)沒前途了嗎?
分享人:濤思數(shù)據(jù)交付工程師 董延瓊
如果篤定地說數(shù)據(jù)庫 DBA 沒有前途,那可能有些武斷了。但某些 DBA 的前途確實(shí)渺茫了,比如 DB2 和 Sybase 的 DBA 們。可能有的小伙伴不太了解這兩個(gè)產(chǎn)品,要知道,DB2 當(dāng)年的風(fēng)頭還在 Oracle 之上。不禁要緬懷一句,“舞榭歌臺(tái),風(fēng)流總被,雨打風(fēng)吹去”。
至于數(shù)據(jù)庫 DBA 這個(gè)新興的小鮮肉,說不定哪天也會(huì)被掃進(jìn)歷史的垃圾堆。但還不是現(xiàn)在。
我們隨便打開一個(gè)招聘網(wǎng)站,輸入 DBA 就可以看到招聘的職位,薪資范圍在 15~60K 之間,看起來還是蠻誘人的。

從涉及的數(shù)據(jù)庫產(chǎn)品來看,主要以 Oracle、MySQL、PostgreSQL 為主。僅從招聘信息來看,數(shù)據(jù)庫 DBA 的“錢途”還是有的。但在這個(gè)“盛世”下,有人還在擔(dān)心數(shù)據(jù)庫 DBA 的未來發(fā)展,不過也是有跡可循的。
2018 年,Oracle 推出了全球首款,也是唯一一款自治數(shù)據(jù)倉庫——Oracle Autonomous Database Warehouse ,它可以用更低的成本為客戶提供更高的性能、可用性和安全性,帶來現(xiàn)代化的云端體驗(yàn),為全面迎接自治時(shí)代成功奠基。
“自治(Autonomous)”是云技術(shù)的一個(gè)跨越,它不僅可以在無需人工干預(yù)的情況下,對(duì)業(yè)務(wù)運(yùn)行的設(shè)施進(jìn)行自動(dòng)更新、調(diào)整和修復(fù),還能幫助企業(yè)節(jié)約管理成本、快速部署項(xiàng)目并顯著降低風(fēng)險(xiǎn),為企業(yè)客戶帶來全新的上云體驗(yàn)。這意味著 Oracle 已經(jīng)開始搶它自己 DBA 的飯碗了。
不止是 Oracle 這種老牌數(shù)據(jù)庫廠商,新的數(shù)據(jù)庫廠商其實(shí)也在進(jìn)行運(yùn)維革命了。新興的時(shí)序數(shù)據(jù)庫 TDengine 在其官網(wǎng)首頁中描述產(chǎn)品的特性時(shí),提到了零管理:安裝、集群幾秒搞定,無任何依賴,不用分庫分表,系統(tǒng)運(yùn)行狀態(tài)監(jiān)測(cè)能與 Grafana 或其他運(yùn)維工具無縫集成。不論技術(shù)上如何實(shí)現(xiàn),至少在理論上,已經(jīng)致力于盡力減少運(yùn)維工作了。

我記得之前上 MBA 時(shí),老師組織過一場(chǎng)討論,論題是 AI 會(huì)不會(huì)取代大部分人類工作。我當(dāng)時(shí)的觀點(diǎn)很明確,會(huì)的,因?yàn)檫@就是我們研究 AI 的目的。
最開始入職 IT 行業(yè)時(shí),搞定一個(gè)系統(tǒng)上線是個(gè)非常復(fù)雜的工作,需要先將服務(wù)器上架,再安裝相應(yīng)的操作系統(tǒng),還要配置網(wǎng)絡(luò)、連接存儲(chǔ),隨便搞搞就要一周的時(shí)間。發(fā)展到現(xiàn)在,阿里云從下單到開通不到十分鐘,整個(gè)過程中的主機(jī)工程師、網(wǎng)絡(luò)工程師、存儲(chǔ)工程師等古早職業(yè)都消失了。
要知道,阿里云不止有云主機(jī),還有云數(shù)據(jù)庫,你不需要再關(guān)心底層架構(gòu),只有付錢就可以了,甚至不需要進(jìn)行維護(hù),最多關(guān)心一下磁盤是否夠用,DBA 的工作就這樣被極大地簡(jiǎn)化了。如果從這個(gè)角度來看,數(shù)據(jù)庫 DBA 的前途確實(shí)堪憂了。
那么已經(jīng)是 DBA 的同學(xué),或是剛成為 DBA 的同學(xué)應(yīng)該怎么辦呢?不論任何職業(yè),只要不想被淘汰,那就必須讓自己做的工作成為不可取代的那部分。
那 DBA 有哪些工作是很難取代的呢?我們先來梳理一下 DBA 的工作內(nèi)容:
- 業(yè)務(wù)建模:根據(jù)業(yè)務(wù)場(chǎng)景,設(shè)計(jì)庫和表結(jié)構(gòu)
- SQL 優(yōu)化:對(duì)業(yè)務(wù) SQL 進(jìn)行優(yōu)化,提升效率
- 安裝部署:部署數(shù)據(jù)庫產(chǎn)品
- 系統(tǒng)調(diào)優(yōu):調(diào)整數(shù)據(jù)庫參數(shù),優(yōu)化性能
- 應(yīng)急處理:處理緊急問題,如數(shù)據(jù)庫故障、數(shù)據(jù)誤刪除
- 備份恢復(fù):不需解釋
對(duì)于以上工作內(nèi)容,第 3、4 項(xiàng)在云環(huán)境里已經(jīng)沒什么意義了;而第 2 項(xiàng),對(duì)于擁有高級(jí)解析器的數(shù)據(jù)庫產(chǎn)品,如 Oracle 來說,也沒什么必要了;第 6 項(xiàng)完全看實(shí)際需要,簡(jiǎn)單的備份恢復(fù)自動(dòng)化就可以完成,更定制化的則需要人工干預(yù)。
那么現(xiàn)在來看,就只剩下了第 1、5 項(xiàng)工作必須要人工來完成了。每個(gè)系統(tǒng)所對(duì)應(yīng)的業(yè)務(wù)場(chǎng)景都是獨(dú)一無二的,并不存在一個(gè)“包打天下”的統(tǒng)一的建模方式,從這個(gè)角度來說,快速熟悉業(yè)務(wù)場(chǎng)景是 DBA 至關(guān)重要的能力。
只要是 IT 系統(tǒng),不管設(shè)計(jì)的多么智能,都可能會(huì)出現(xiàn) Bug。能夠深入了解產(chǎn)品、快速應(yīng)對(duì)意外情況、及時(shí)提出解決方案的 DBA ,在此時(shí)就是最稀缺的。
綜上所述,雖然目前數(shù)據(jù)庫 DBA 的前途和“錢途”都還是有的,但也不能盲目樂觀,還要不斷提升自己才不會(huì)被淘汰掉,追趕我們的不止是技術(shù),還有“后浪”。
想做好時(shí)序數(shù)據(jù)庫 DBA,需要具備哪些能力?
分享人:濤思數(shù)據(jù)交付工程師 肖波
想勝任 DBA 這個(gè)職業(yè),應(yīng)該具備哪些必備能力?大家討論的比較多的大都是關(guān)系型數(shù)據(jù)庫的 DBA ,下面我會(huì)從時(shí)序數(shù)據(jù)庫角度來談下個(gè)人觀點(diǎn)。
- 持續(xù)學(xué)習(xí)的能力
時(shí)序數(shù)據(jù)庫是一個(gè)新的方向,它采用的技術(shù)架構(gòu)普遍與關(guān)系庫不同。例如,在數(shù)據(jù)索引結(jié)構(gòu)的選擇上,關(guān)系型數(shù)據(jù)庫大多采用 B+ 樹,時(shí)序數(shù)據(jù)庫則多采用 LSM 樹;而且結(jié)合時(shí)序數(shù)據(jù)的特點(diǎn),時(shí)序數(shù)據(jù)庫多采用列式存儲(chǔ)方式。
以 TDengine 為例,它采用就是 LSM 樹,加上列式存儲(chǔ)、一個(gè)設(shè)備一張表的設(shè)計(jì),在應(yīng)對(duì)物聯(lián)網(wǎng)時(shí)序數(shù)據(jù)的場(chǎng)景時(shí)就會(huì)很有優(yōu)勢(shì)。如果你還停留在 B+ 樹的語境里,那將很難理解這種設(shè)計(jì)的優(yōu)勢(shì)和特點(diǎn),高效運(yùn)維自然無從談起。這種技術(shù)架構(gòu)的差異導(dǎo)致技術(shù)實(shí)現(xiàn)也會(huì)有很大不同,DBA 只有不斷學(xué)習(xí),才能掌握關(guān)鍵點(diǎn),做好本職工作。
- 對(duì)計(jì)算機(jī)系統(tǒng)深入理解
目前數(shù)據(jù)庫系統(tǒng)大多運(yùn)行于 linux 系統(tǒng)上,一個(gè)合格的 DBA 不能只滿足于對(duì)計(jì)算機(jī)系統(tǒng)的一般性認(rèn)識(shí),還需要深入了解系統(tǒng)的工作原理,對(duì)內(nèi)存分配回收、進(jìn)程調(diào)度、網(wǎng)絡(luò)管理等都要有深刻的理解,對(duì)如何分析、定位操作系統(tǒng)問題也要有深刻認(rèn)識(shí)。只有做到這些,才能迅速定性、定位實(shí)際工作中遇到的問題。
- 深入了解存儲(chǔ)系統(tǒng)
目前的時(shí)序數(shù)據(jù)庫大多采用分布式架構(gòu),在分布式架構(gòu)下如何保證數(shù)據(jù)的一致性、特別是海量數(shù)據(jù)的一致性是一個(gè)特別大的挑戰(zhàn)。傳統(tǒng)大數(shù)據(jù)平臺(tái)有利用 HBase 作為存儲(chǔ)系統(tǒng)的,新一代的時(shí)序數(shù)據(jù)庫有自研存儲(chǔ)系統(tǒng)的,也有采用開源的分布式存儲(chǔ)系統(tǒng)作為存儲(chǔ)方案的。作為一個(gè) DBA,確保數(shù)據(jù)安全是最重要的工作,這就要求你必須深入了解所使用的數(shù)據(jù)庫的存儲(chǔ)架構(gòu),才能制訂出合理的數(shù)據(jù)備份、恢復(fù)、災(zāi)備方案。
- 熟悉主流高級(jí)語言的數(shù)據(jù)庫接口及框架
時(shí)序數(shù)據(jù)庫的寫入吞吐一般比關(guān)系型數(shù)據(jù)庫要高若干個(gè)數(shù)量級(jí),一般后者每秒寫入數(shù)百條記錄就算不少了,但時(shí)序數(shù)據(jù)庫每秒寫入經(jīng)常要達(dá)到幾十萬,甚至數(shù)百萬條記錄。聚焦寫入問題上,除了數(shù)據(jù)庫本身的性能調(diào)優(yōu),還涉及到各語言連接器、框架的使用方法是否正確。要想成為合格的時(shí)序數(shù)據(jù)庫 DBA,你需要對(duì)連接器、框架非常了解。
當(dāng)然,除了寫入,查詢是另一個(gè)重點(diǎn)。調(diào)優(yōu)時(shí)序數(shù)據(jù)庫的查詢性能,除優(yōu)化本身參數(shù)外,對(duì)主流語言框架如何構(gòu)造查詢語句也要有深入了解,這會(huì)大大縮短很多復(fù)雜查詢問題的定位時(shí)間。
- 對(duì)數(shù)量級(jí)的敏感
隨著各行業(yè)的不斷發(fā)展,海量的數(shù)據(jù)寫入、讀出帶來的問題和挑戰(zhàn)比起從前更加頻發(fā),定性問題的關(guān)鍵是需要 DBA 對(duì)數(shù)量級(jí)有超過一般人的敏感度。除了 CPU 負(fù)荷外,磁盤吞吐量、IOPS、網(wǎng)絡(luò)吞吐、PPS、隊(duì)列長度深度、各類耗時(shí)等都需要 DBA 反復(fù)不停地比較、計(jì)算,直到找到問題的主要原因。對(duì)數(shù)量級(jí)的高敏感度可以大大減少問題定性、分析時(shí)間。
除了上述的能力加持外,DBA 最重要也最基礎(chǔ)的能力其實(shí)是——基礎(chǔ)知識(shí)牢固、邏輯分析能力強(qiáng)、思維清晰。很多人認(rèn)為有 Oracle 的認(rèn)證、微軟的認(rèn)證很重要,我覺得那只能證明他曾經(jīng)具有一定的學(xué)習(xí)能力。一個(gè) DBA 的能力強(qiáng)弱,具體體現(xiàn)在他定位、解決一個(gè)問題的速度,這里面除了經(jīng)驗(yàn)以外,扎實(shí)的基礎(chǔ)知識(shí)、良好的訓(xùn)練、科學(xué)的分析方法論才是可靠的“屠龍刀”。
寫在最后
如果你有志于成為一名時(shí)序數(shù)據(jù)庫 DBA,那你一定不能錯(cuò)過 8 月 13 日我們?cè)诒本?middot;昆泰嘉瑞文化中心舉辦的「TDengine 開發(fā)者大會(huì)」,本次會(huì)議上不僅會(huì)有多位基礎(chǔ)軟件領(lǐng)域知名大咖貢獻(xiàn)精彩演講與趨勢(shì)解讀,還會(huì)有金融、車聯(lián)網(wǎng)等行業(yè)知名企業(yè)分享數(shù)據(jù)架構(gòu)升級(jí)經(jīng)驗(yàn)。此外,TDengine 3.0 版本也將重磅發(fā)布,核心研發(fā)人員將首次對(duì)外分享創(chuàng)新思路,進(jìn)一步加深你對(duì)時(shí)序數(shù)據(jù)庫技術(shù)實(shí)現(xiàn)和架構(gòu)創(chuàng)新的思考。