OBCE二戰上岸經驗:行之所向,莫問遠方

奧星貝斯(OceanBase)發表於2023-10-24

作者張瑞遠:曾經從事銀行、證券數倉設計、開發、最佳化類工作,現主要從事電信級 IT 系統及資料庫的規劃設計、架構設計、運維實施、運維服務、故障處理、效能最佳化等工作。持有 Oracle OCM,MySQL OCP 及國產代表資料庫認證。獲得的專業技能與認證包括 OceanBase OBCE、Oracle OCP 11g、Oracle OCM 11g 、MySQL OCP 5.7 、騰訊雲 TBase、騰訊雲 TDSQL。

2020 年,我第一次接觸 OceanBase。當時,大多數人認為,國產化資料庫都是套殼資料庫,我也不例外。

由於當時我所在專案作為試點使用 OceanBase,瞭解之後我才知道,OceanBase 是一款完全自研的原生分散式資料庫,這也讓我對國產化資料庫的看法有所改觀。

彼時正值 OceanBase 推出 OBCA 認證免費的活動,於是我藉著這個機會,考取了 OBCA 證書,對 OceanBase 有了詳細的認知。

2020 年下半年我們開始準備上線 OceanBase 資料庫,出於對國產化資料庫的好奇心,我主動申請參與 OceanBase 的專案。

作為一個 90 後雖然我已經考取了 OCM 認證,但是作為一名 DBA,對於一款資料庫的瞭解越深,往往越能發現自己更多不足。深耕 Oracle 的前輩們積累的一些經驗和知識,我需要花費多年才能追趕得上,這對我的壓力很大。而現在能夠接觸到一款完全自研的國產化資料庫,並且作為之後工作專案的一個重點,讓我能夠提前進入賽道,對自己的職業發展更有優勢,在產品完善和快速發展的路上,也能夠快速學習和成長。

最初入門

在專案初期,我就和 OceanBase 的交付同學一起參與專案建設。剛開始什麼都不懂,連分散式的架構都不清楚。後來,我根據官方文件和交付老師做完後保留的文件,在類似測試環境的相關工作中,自己慢慢上手實施,對一些名詞及概念越來越熟悉,並在此過程中沉澱出了一些操作筆記。

為了方便溝通,我參加了原廠組織的 OBCP 培訓。這讓我更進一步理解了 OceanBase 資料庫的基本概念和架構體系,還在實際工作中逐步接手並勝任大部分的實施部署工作,也可以獨立完成其他工作。

2021 年初,我基本全程參與了 OceanBase 資料庫遷移流程,包括資料庫設計、相容性測試、環境搭建實施、回放測試、物件和資料遷移等。

這時候 OBCP 開放了一些名額,有前期經驗作為基礎,我順利考取了 OBCP 認證。當時 OBCP 還沒有上機考試,考的理論知識點大部分我都熟悉,沒有懸念就透過了考試。

沙場折戟

順利透過 OBCP 認證讓我有點飄了,因此我十分期待 OBCE 考試。2021 年 6 月,OceanBase 開放了 OBCE 認證,首期放出 10 個免費名額,我有幸搶到了北京考場的一個名額。

當時 OceanBase 官網還沒有更新 OBCE 教材,我自認為能力不錯,在備考期間就有些懈怠。7 月 28 日,我去北京參加 OBCE 考試。

OBCE 考試共計 8 小時,上午的環境部署比較順利,但是後面的一些題目,比如弱讀的配置、主備的搭建切換等題目,由於我自身運維經驗不足,逐漸有些力不從心,尤其是有些報錯要處理的時候大腦就空白了。

從考場出來後我還抱著一絲僥倖,心想也有可能就給過了呢。幾個工作日之後,不及格的成績出來,我既失落也高興。失落的是考試沒過,高興的是 OBCE 考試真的很嚴格、很公平,不會因為第一次開放考試就放寬標準。

學習沉澱

之後的兩年裡,我們公司的專案接連應用 OceanBase 資料庫。在此期間,我有過連熬兩週通宵的痛苦,也有一個個系統平穩上線後的喜悅。同時,我不斷反覆翻閱官方文件,遇到問題及時跟現場的交付同學請教,在處理問題提工單時從研發老師那裡獲取問題解決方式及知識原理。而這些經歷也讓我在環境實施、故障處理、最佳化分析、主備搭建、引數調整等方面的工作越來越得心應手。

2022 年,我得到了公司發放的一張考試券。有了上次考場折戟的經歷,我認真對待這次的 OBCE 考試,把它當成了一座需要攀登的高峰,而我還有很長的路要走。因此,我遲遲沒有再去嘗試考試,計劃先做好手裡的工作,在實踐中不斷成長。

水到渠成

2023 年年中,我們的專案已經全面國產化,我們工作的重點也慢慢從實施交付轉移到運維管理。這時候公司催我去考 OBCE,因為再不去考,考券要過期了。雖然我仍然認為自己能力不夠,但最終還是下定決心 8 月去考 OBCE。

有了一次考試的經驗,我明白 OBCE 考試考的不光是知識點的深度,更是 OceanBase 資料庫相關知識的廣度。作為 DBA,我深知有許多同行像我一樣,往往熟悉自己擅長的一類工作,對資料庫產品缺乏全面的瞭解,這是我們的不足之處。

6 月份,我就開始部署環境做一些練習,並且沉下心重新梳理官方文件和官網的 OBCE 培訓教材,一步步練習,從叢集搭建、OBProxy 部署、租戶建立,到引數設定、擴縮容、日誌分析、TCPdump、SQL 最佳化、主備搭建切換等。我把官網上能找到的以及我能想到的內容一遍遍練習,不懂的地方就去社群等地方尋求幫助,爭取把所有的知識都嚼爛,所有的操作都瞭然於心。

到了杭州之後,我和另外一個考 OBCE 的同事碰頭,再次梳理了官方文件的大綱。我發現,這些內容我都準備得很充分了,當晚我睡得特別踏實!

8 月 12 日,我正式參加 OBCE 的上機考試。開啟考試題目,先大概瀏覽了一遍,心也慢慢落了地。因為這次準備得很充分,考點都在我的“射程”之內。安裝部署、高可用配置、擴縮容、調優、TCPdump分析問題、鏈路管理、記憶體管理、資料遷移等,我按照順序依次答題,感覺到越來越心安,最終提前一個半小時交卷,走出考場。兩天後,我得到筆試成績:透過!

緊接著開始馬不停蹄約考 OBCE 面試。期間也很感謝我的同事幫我分擔了很多工作,讓我能夠安心準備考試。

我把 OceanBase 的官方文件( 3.2.3 版本、 3.2.4版本、4.2版本的文件和 OBCE 的培訓教材)翻了三四遍,儘量不漏掉一個細節。透過對比版本變化,理解其中的原理知識。對於有疑問的地方找環境去測試,或者找人去諮詢。

OBCE 的定位比較高,主要面向資料庫架構師以及運維專家,所以難度較大,只熟讀官方文件的知識不一定可以達到相應的深度,因此在備考過程中一定要有探索精神,多去想為什麼,並想清楚為什麼。

比如:行列混存編碼是怎麼實現的;SSTAB 的宏塊和微塊大小是多少,是否可以調整;資料空洞是怎麼產生的……這些問題都需要對 OceanBase 資料庫各個方面的知識有理解和思考。有好多研發同學也在 OceanBase 官網部落格和論壇給大家不斷分享相應的原理和交付案例,大家可以多去學習。

9 月 20 日,我參加了 OBCE 的面試。除了對多版本合併消除的知識點產生了理解偏差外,考官的其他問題我都根據自己的理解進行了相應解答。涉及記憶體模組、最佳化器的分散式計劃、多層合併、備份策略、備叢集切換、資料庫設計中的網路設計、遷移、備份恢復、副本同步、SQL 診斷、國產化專案整體流程思路等問題。

答辯之後,我舒了一口氣。一是因為答辯很順利,二是因為備考 OBCE 也驗證了我這兩年的成長,是我對自己的一個交代。

兩天後考試成績出來:透過!

備考總結

永遠用 100 分的態度去對待 60 分的考試。當然 OBCE 難度更高,是 80 分透過。

對於問題要有刨根問底的態度,這對個人成長和對資料庫的理解有很大的幫助。

多看官方文件,官方文件是 OceanBase 的精華描述,基本可以覆蓋每個知識點和細節,對於原理了如指掌,那相應的操作才能如臂使指。

有條件的同學一定要多操作多練習,我一直相信,每一個遇到的問題,都是成長的一個臺階,每個問題的產生和解決都能幫助你更深入地學習和理解原理。OceanBase 社群有問答論壇、技術部落格等,千萬別怕遇到問題,有問題去解決就好。

真誠地建議大家,一定不要像我這樣去裸考(我是因為本職工作佔有優勢,屬於特殊情況)。有機會一定要參加 OBCE 的培訓,會幫助大家更好地理解 OceanBase 的技術細節和底層原理,更重要的是 OBCE 培訓會對資料庫架構、應用架構設計等進行講解,這可以為我們成功實施一個完整的國產化專案打下基礎。

我因為疫情錯過了參加 OBCE 培訓的機會,用三年的生產經驗和專案上的摸爬滾打才走通這條路,我知道這是我的必經之路,但是希望大家能少走彎路。

行之所向,莫問遠方。當你不知道方向的時候,不妨先去做,有時當你抬頭時,會發現你已經到了山頂。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70033709/viewspace-2990632/,如需轉載,請註明出處,否則將追究法律責任。

相關文章