天天看點

FAQ系列 | MySQL DBA修煉秘籍0、導讀1、什麼是MySQL DBA2、MySQL DBA的職責3、如何成為MySQL DBA4、MySQL DBA如何提升

本文主要寫給那些立志成為mysql dba,以及正在學習mysql的同行們,結合個人及業内其他同行的職業發展經曆給大家一些參考,如何成為合格的mysql dba。

首先,dba是database administrator(資料庫管理者)的簡稱,在一些招聘網站上,也可能會把職位寫成資料庫[管理]工程師,mysql dba是目前網際網路企業中最為炙手可熱的崗位需求之一,前(錢)景大好,快到碗裡來吧。

下面是拉勾網的mysql dba招聘需求(若無“mysql中文網水印”的二維碼請勿打開):

FAQ系列 | MySQL DBA修煉秘籍0、導讀1、什麼是MySQL DBA2、MySQL DBA的職責3、如何成為MySQL DBA4、MySQL DBA如何提升

傳統意義上的dba基本上隻要管好database system就可以,一般無需關注作業系統、硬體、網絡、安全、nosql等相關技術細節,在一些傳統企業或者操作內建商裡的oracle dba就是這樣的,最多關注到主機(小機為主)及相應的儲存設備。

而mysql一般在網際網路業務中使用,mysql dba需要關注的方面也相應更多了,主要就是上面提到的主機硬體、os、網絡、安全、nosql,以及一些mysql運維自動化開發(這不奇怪,一個好平台,通常都要自己親自開發才順手)的工作。

此外,随着企業規模的變化,可能在公司初期是由一些比較資深的開發工程師負責所有伺服器大小事宜,當然也包括mysql的管理及優化。随着規模的擴大,可能改由運維工程師來負責這些事了。更進一步的話,就開始需要專職的mysql dba了,随着業務發展,形成dba team,同時負責和資料及存儲相關的事務,比如儲存設備、nosql、日志存儲&分析,甚至大資料平台。

在一線的大型網際網路公司裡,甚至還區分運維dba、開發dba、db架構師等不同崗位,為的就是能做到術業有專攻,讓專業的人專注做專業的事。

比較理想的mysql dba工作狀态應該是這樣的:

例如mysql執行個體安裝、備份&恢複、slave搭建、權限管理、ddl&dml變更上線等基礎的工作,通過db平台滑鼠點點點即可完成,大概占用10%的時間;

關鍵業務的sql稽核也可采用db平台來完成,尤其是一些正常的sql規範規則,ddl相對好辦,dml可能需要進一步完善的評估,個别sql再采用人工稽核,平時經常和業務部門進行溝通,了解下階段的業務目标,預估db端可能需要承載的壓力,大概占用20-30%的時間;

通過監控系統來完成可用性及性能監控,發現異常時,再進行人工幹預處理,一些容易引發性能問題的常見情景,也可以固化到自動化處理機制中,比如自動探測超過n秒的純select查詢,避免這種慢sql産生連鎖反應,或者自動殺掉一些有sql注入風險的請求,大概占用10%的時間;

資料庫主動優化,一個有豐富經驗的dba,看到資料庫的一些現場情況時,一般即可預感到是否需要進一步深入優化工作。而sql開發規範推送也很重要,可以在開發階段讓程式猿做好基本的sql優化,這樣上線後不會手忙腳亂,反複的出現一些低級sql性能問題,大概占用20-30%的時間;

其餘的時間可以用來充電學習,以及圈内的交流扯淡了,擴充知識面。

事實上,mysql dba的入門并不難,但若想要成為進階、資深的dba就有一定難度了。

如果是在校生,最起碼要先把《資料庫概論》那門課程給學一遍,其實如果是已經在職但對資料庫還沒什麼概念的人,最好也要學習下這本書,對資料庫基本概念有一定了解。

此外,最好還要對linux有一定了解,現如今在網際網路公司中,如果想從事和技術相關的崗位,你告訴面試官不懂linux為何物的話,估計直接就被pass了。想學習linux,可以買本《鳥哥linux私房菜》或者參加專業教育訓練(花錢參加教育訓練并不是什麼丢人的事,關鍵是要找到一個靠譜的機構,靠譜的老師,學習效率會更高,知識也更為系統化,而自學畢竟要消耗更多時間,也可能比較零散,花錢買時間學會後,可以更快獲得回報)。

有了基礎概念後,可以再買一本mysql相關的基礎入門書籍,比如《mysql必知必會》、《深入淺出mysql》等,其實我更建議把mysql官方手冊中的關鍵章節完整看一遍(關注公衆号imysql_wx,發送“章節”獲得推薦),并結合裡面的案例進行測試,或者自己用wordpress搭一個部落格站,平時可以自己做些實踐演練。

如果能專注把上面的内容學習完畢,我相信你已經可以成為一個合格的初級mysql dba了。接下來就是找到一個合适的工作機會(可以把履歷給我,我根據情況可幫忙進行推薦),進行真正的實操,獲得正式從業經驗。

事實上,如果你已經獲得了mysql dba工作機會之後,如何進行自我提升通常來說已經不需要我來說了,可以參考公司裡的同僚以及其他同行的提升發展道路模式。

通常來說,在這個階段需要深入學習的是某些關鍵知識點,比如資料庫原理、并發事務、鎖控制、存儲引擎、主機硬體優化等知識。有些不錯的書可以推薦,比如:《高性能mysql》、《資料庫系統實作/概念》、《資料庫與事務處理》、《資料庫索引設計與優化》等等。

文章轉自老葉茶館公衆号,原文連結:https://mp.weixin.qq.com/s/hyhiqt_tlvpc__kont_w0g