【DBA100人】白鱔:一直往上走,從程式設計師到資料庫專家

hooca發表於2023-01-12

引言

「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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章