【DBA100人】白鱔:一直往上走,從程式設計師到資料庫專家
引言
「DBA 100人」專訪計劃是OceanBase圍繞資深DBA(資料庫管理員:Database Administrator)進行的人物專訪活動,旨在透過人物故事、職業發展經歷以及日常工作中遇到的技術難題和實踐案例,未來對技術趨勢的想法,希望他們的成長之道能夠給到各行業DBA一些建議和思考。
《DBA 100人》第5期帶你瞭解南京基石資料技術有限責任公司CTO,資深Oracle資料庫最佳化專家徐戟(白鱔)——他曾供職於DEC、賽格集團、長天集團、聯想集團等國內外知名企業,主持開發了國內第一套聯機實時計費系統,國內第一套三檢合一的檢驗檢疫綜合業務系統。2000年以後致力於Oracle資料庫效能最佳化等方面的研究,參與了大量效能最佳化專案,著有《Oracle RAC日記》、《Oracle DBA最佳化日記》和《DBA的思想天空》等技術專著。
作為一名在DBA圈子裡頗有名氣的技術專家,徐戟一直活躍在業內,擔任過眾多資料庫和IT運維活動的演講嘉賓,擁有不少的粉絲。徐戟的著作至今仍然是很多DBA的案頭讀物,不少DBA正是從這些書籍中找到了解決問題的答案。儘管在資料庫領域如此出名,但他其實算是半路出家,是怎樣的機緣巧合,讓他逐步成為一名資料庫專家的?
2015 年的一天,徐戟突然接到了一個來自國家電網的緊急求助電話。原來,國家電網遭到了 Oracle 資料庫 SCN HEADROOM 風暴的襲擊,距離 SCN 天花板只有不到 10 天,如果在此之前找不到源頭,風暴爆發時國家電網大部分 Oracle 資料庫可能當機,屆時會波及到國家電網下轄的 20 多個省市的營銷、生產管理等核心系統,這將造成不可估量的損失。
緊急召喚
SCN (System Change Number)是 Oracle 內部使用的邏輯時鐘,用於區分事務操作的先後次序以及確保事務操作的一致性,由一串 48 位單向序列數字組成。為了確保這個 48 位的 SCN 能夠用足夠長時間,Oracle 對 SCN 序列做出一個限制,即每秒鐘 SCN 最大增長不能超過 16K。正常情況這個增量完全能滿足需求,但是當時 Oracle 有 Bug,在某些情況下會被觸發,導致SCN在短時間內大幅增長,很快就會逼近上限。而一旦達到了上限,會造成資料庫保護性當機。
Oracle 這個 Bug 已經存在幾年了,Oracle 也推出了相應的補丁。不過,只要資料庫有一個沒打補丁,與其他資料庫透過 DBLink 連線時就會引發 SCN 同步。國家電網當時面臨的就是這個局面,國家電網的大多數 Oracle 資料庫都打了補丁,SCN HEADROOM 還是在不斷異常減少,說明有個別資料庫沒有打補丁,現在迫切需要在 SCN 達到上限之前找到這個沒有打補丁的資料庫,予以下線或者立即打補丁解決問題。
這就是徐戟當時面臨的棘手情況。國家電網專門為臨危授命的徐戟提供了一個影片指揮中心,並授權他來全權排程和指揮國電下屬的那些資料單位。對徐戟而言,壓力不言而喻,時間緊,而且這件事情太重要,不容有失。
“國家電網業務遍及全國 27 個省,有 30 多個資料單位,安裝了數幾千套 Oracle 資料庫。在一個複雜的網路環境下互相傳染,到底誰是源頭,誰是被傳染的,必須在幾天之內把它定位出來,否則的話就可能要出大的運營事故了。” 徐戟說。
好在徐戟之前在運營商處置過類似的情況。接到任務後,徐戟抓緊時間安排人寫好指令碼,然後分發下去,讓指令碼在國家電網的各個系統上跑起來。幾個小時後資料包上來。徐戟找了幾十個人連夜處理資料,大約 24 小時後結果出來了,最後定位到西北的某個系統,是另外一個單位部署在國家電網的資料庫。因為不屬於國家電網所有,沒有打補丁,引發了這次 SCN 危機。
2 天多的時間,徐戟沒有離開指揮中心,困了就在大廳裡眯一會。可以想象,當準確定位到問題的那一刻,站在指揮中心的大屏前的徐戟想必是無比自豪的,作為一個技術人員能有這樣的機會和能力來回報社會、回報國家,那種成就感是對他的付出和辛苦最好的回報,足以讓他記憶一輩子。
轉向資料庫,一戰成名
雖然今天的徐戟是一名不折不扣的資料庫專家,但他並非一開始就專門研究資料庫。資料庫是他後來才鎖定的領域。實際上,在 2000 年以前和 2000 年之後最初的幾年,徐戟在軟體領域要比資料庫有名。
徐戟 1992 年畢業於南京大學計算機專業。當年計算機還是稀罕物,只有大公司才有計算機,而且都得放在專門的計算機機房,計算機人才非常寶貴。徐戟屬於不太安分的人,幾次進公司就業,然後又出來創業。雖然很多時候徐戟的工作會與資料庫打交道,也會涉及一些資料庫的最佳化和運維,但最多隻能算是兼職 DBA。大多數時候徐戟的主要工作是軟體開發,以及進行系統最佳化,在業界頗為有名。
到 2006 年,徐戟所在公司成為了 Oracle 在中國的外包服務商,從此和 Oracle 資料庫打交道的時候越來越多,徐戟的工作重心逐漸轉向了資料庫,並很快成為一名專家,在業內擁有了很高的知名度。到 2011 年,國家電網有一批幾年前上的專案由於運維沒有跟上,陸續出現效能問題,在全國範圍找人最佳化,徐戟因為在業內擁有很高的名氣而被國家電網選中了。
“當時國家電網負責這項工作的一個領導準備和我見面。他工作很忙,我專門從深圳飛過來見他。我等到他了一上午,他實在抽不出時間,就決定中午邊吃飯邊聊。吃飯的時候,我介紹我的方案,這位領導非常感興趣,直接把自己後面的日程安排取消了,我們一直談到了下午 2 點。”徐戟說。
這件事一方面說明了國家電網對這件事情的重視,同時也說明徐戟的方案可行。回深圳不久,徐戟就接到國家電網的通知,這個專案要真正做了。這個專案後來完成的效果非常好,整個系統的效能提升了 10 倍以上。專案涉及到的工作也很多,不只是資料庫的最佳化,而是軟硬體環境包括應用系統的整體最佳化,甚至涉及到應用軟體核心演算法的改進。
這個專案讓徐戟在國家電網系統一戰成名,後來他陸續參與了很多國家電網的專案。而在服務國家電網的過程中,徐戟的名氣越來越大,有很多類似的專案找來了。徐戟記得有一個專案上線才兩年,可是系統越來越慢,公司準備投入 3500 萬進行系統擴容。聽說了徐戟的能力,找到他看看他能不能想想辦法,實在不行也少投點錢。接到任務,徐戟帶著團隊幹了一個多月時間,然後回覆領導保證系統再用 5 年不需要擴容。
“其實,這個 3500 萬的專案我們做的工作並不算複雜,主要是碎片的整理、虛擬卷的設定和表分割槽的調整等,都是比較常規的操作,原本計劃還要做 SQL 的最佳化等,因為前期這些工作效果非常明顯,這些就沒做了。”徐戟說。
隨著一個個專案的成功,徐戟在國家電網系統也成為一個名人,一位領導甚至對手下人說,你們可要把徐戟看好了,別讓他跑了,這個人可值錢了。
“曾經還有一個運營商 IT 負責人半開玩笑的和我說,如果你能透過最佳化,讓我的系統多用兩年,我給你 1000 萬都願意。”徐戟說,這實際上就是系統最佳化的核心價值。
徐戟表示,這雖是玩笑但也說明系統最佳化的確是能節約投資,能真正帶來實實在在收益的。這也成為今天徐戟將很大精力放到智慧問診軟體 D-Smart 的研發上的一個重要原因。
“過去很多系統重建設輕維護,系統上線後就沒人管了,導致系統效能很快就降下來了。實際上,只要做些常規的運維工作,往往就能取得很好的效果。D-Smart 希望在這方面做點工作。”徐戟說。
和國產資料庫一起成長
徐戟從 2000 年以後慢慢將主要精力轉到資料庫,特別是 2006 年成為 Oracle 在中國的外包服務商之後,工作重點就全面轉向資料庫。加上隨著年紀的增長,繼續寫程式碼精力也跟不上,徐戟也希望能把精力轉到資料庫的運維上。“畢竟資料庫是一個可以幹到老的工作。”徐戟說。
因為徐戟長期從事資料庫相關的工作,使得他對資料庫行業的發展非常瞭解。這些年下來,他太瞭解中國在資料庫領域的問題所在了,也非常希望為中國資料庫產業的發展出一份力。為此,他積極鼓勵自己及其身邊人把資料庫領域積累的經驗對外分享,他寫書、開微訊號、演講,不斷傳播資料庫的相關知識。
“我喜歡分享,希望大家能一起努力,讓這個生態做得更好。當年出書的時候,就有很多人讓我別出書了,說這裡有很多技巧和方法都是 DBA 吃飯的本錢,說出來別人都會了。最後我還是堅持出了。”徐戟說。
2017 年,創立南京基石資料公司以後,他決定推出一款用於資料庫的智慧診斷工具,讓這些經驗能為更多人服務,這就是 D-Smart。他說這可能是他退休之前做的最後一件大事了。
D-Smart 將資料庫專家的經驗集合起來,形成知識圖譜,然後對資料庫運維過程中採集下來的各種日誌、指標等資料自動進行分析和診斷,及時發現問題並告警。
“D-Smart 對不同的 DBA 作用不同,如果是普通的 DBA 可以透過它幫你發現一般的資料庫問題,進行一般診斷和告警;如果是高階的專家,它也可以幫你把資料進行彙總,為專家的診斷提供方便。”徐戟說。
因為 D-smart 的目標是能適用所有市場主流的資料庫,所以徐戟這些年和國產主流資料庫都有接觸,對於國產資料庫的不足也深有體會。徐戟介紹,很多國產資料庫面臨的尷尬狀況是,小問題不用 DBA 來,扛一陣子就過去了;大的問題,DBA 不用來,來了也沒有用。
“資料庫的可觀測性是一個資料庫是否成熟的一個重要標誌。Oracle 提供了非常豐富的指標,透過這些指標可以非常清楚地瞭解目前資料庫的執行狀況。比如,光是等待事件 Oracle 就提供了 2800 多種,而我們很多國產資料庫連最基礎的一些指標都沒有,對 DBA 很不友好。”徐戟表示。
D-Smart 是一個深度運維工具,需要根據豐富的指標資料才能做出判斷,然而國產資料庫在資料的提供上普遍不足,尤其是後起之秀的國產分散式資料庫。一方面,國產分散式資料庫原本相比集中資料庫原本架構就要複雜一些,同時技術成熟度又晚一些,使得國產分散式資料庫在指標上和相關文件上落後更多。
不過,OceanBase 給徐戟留下非常好的印象。OceanBase 是 D-Smart 接入的第一個國產分散式資料庫,這也說明 OceanBase 在可觀測性上相比同類資料庫有不小的進步。
徐戟說,OceanBase 給他印象最深的有幾點:第一是安裝和部署容易;第二個是文件相對完整,在國產資料庫中非常優秀;第三,OceanBase 這幾年在最佳化器上真正下來不少功夫,每一個版本都有明顯提升。
他希望 OceanBase 在版本相容性上、系統可觀測性上以及產品本身的成熟上也能繼續進步,為中國資料庫產業的進步起到更大的作用。
DBA需要歷練
作為一名資料庫技術專家,徐戟認為 DBA 是一個需要時間積澱的工作,當然也是一個可以做到老的工作,而且是一個非常有成就感的工作。
“DBA 是需要時間積累的,它是一個理論學習和實踐相結合的職位。如果你幹了個三年、五年,你才算剛剛入門。有人可能這個時候就覺得自己很牛了,因而放鬆了學習,甚至停止學習。其實剛剛進入到一個新的階段。”徐戟說。
那麼,如何激勵自己學習,徐戟認為第一重要的是——對資料庫有興趣。
“你得對資料庫有興趣,沒有興趣的人,你可能只它是一個職業的話,等你幹到一定年齡,可能覺得幹不動,晚上加班也加不動了。只有你有興趣才能長期幹。DBA 是越老越值錢,因為你的經驗越豐富,你越能準確發現問題,快速找到問題所在。”徐戟說。
第二,做 DBA 必須有比較強的學習能力。“你一定得是一個願意學習的人,否則你不要幹別的,就是看文件,看資料都難以堅持,還別提那些靠 DBA 相關的各種證照。而且這些也只是剛剛入門而已。”徐戟說。
他說他至今仍保持學習的習慣,訂閱了很多會員,堅持看大量的書和資料,不斷學習,否則的話可能很快就會落後。
第三,DBA 性格要夠沉穩。毛手毛腳的很容易出事兒,而資料庫一旦出了事兒,就出大事兒了。
從長期來看,資料庫運維越來越走向智慧化,但真正的高階資料庫專家永遠是機器沒辦法取代的。徐戟認為,對於 DBA 而言,最終的出路應該是往上走,讓自己真正成為一名的技術專家,而不是成為一個可以機器替代的人。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-2931860/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《程式設計師的修煉之道:從小工到專家》程式設計師
- 讀《程式設計師修煉之道:從小工到專家》有感程式設計師
- 從Java程式設計師到架構師,從工程師到技術專家,迷茫之路如何點亮Java程式設計師架構工程師
- 《程式設計師修煉之道——從小工到專家》筆記1程式設計師筆記
- <<程式設計師修煉之道-從小工到專家>> -2024/10/28程式設計師
- 《程式設計師修煉之道:從小工到專家》之程式碼質量程式設計師
- 【讀後總結】程式設計師修煉之道---從小工到專家程式設計師
- 《程式設計師修煉之道:從小工到專家》讀書筆記程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》閱讀筆記程式設計師筆記
- 程式設計師修煉之道——從小工到專家讀書筆記2程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記 02程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記(四)程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記 06程式設計師筆記
- 程式設計師修煉之道——從小工到專家讀書筆記3程式設計師筆記
- 《程式設計師修煉之道:從小工到專家》讀書筆記 07程式設計師筆記
- 程式設計師修煉之道——從小工到專家讀書筆記7程式設計師筆記
- 《程式設計師的修煉之道從小工到專家》閱讀筆記2程式設計師筆記
- 從2012到2021,從土木到程式設計師程式設計師
- 《程式設計師修煉之道——從小工到專家》第三章——基本工具程式設計師
- 從「美工師傅」到「美術專家」,莉莉絲概念設計專家·亂鐵的18年
- 程式設計師修煉之路 從小工到專家 第二章讀書筆記程式設計師筆記
- 程式設計師修煉之道——從小工到專家,讀後感第一篇程式設計師
- 程式設計師修煉之路 從小工到專家 第一章讀書筆記程式設計師筆記
- 程式設計師修煉之道——從小工到專家第四章讀書筆記程式設計師筆記
- 架構師日記-從資料庫發展歷程到資料結構設計探析架構資料庫資料結構
- 從《老男孩》、《疾速追殺》到《師父》:白眉拳大師的設計之路
- 程式設計師如何乘風破浪?從資料庫歷史看技術人發展 | 週四直播程式設計師資料庫
- 程式設計師面試之MySQL資料庫表的設計程式設計師面試MySql資料庫
- 從程式設計師到架構師,有捷徑嗎?程式設計師架構
- 好程式設計師大資料影片教程從零基礎入門到精通程式設計師大資料
- 從零到專業,程式設計師快速入門Python的3種方法!程式設計師Python
- 資料工程師、掌握資料分析,成為資料科學家、資料庫遷移專家工程師資料科學資料庫
- 從前端到“錢”端,前端程式設計師的出路前端程式設計師
- 程式設計師的桌面(家)程式設計師
- 從程式設計到養生程式設計程式設計
- 程式設計師如何提升管理思維,從個人到團隊的轉變?程式設計師
- 線上資料庫設計工具-toolfk程式設計師線上工具網資料庫程式設計師
- Java從程式設計師到架構師其實並不難Java程式設計師架構