如果從頭開始,如何少走彎路成為合格的DBA?

背景:17本科應屆生,前端應聘軟體開發崗,實習轉正後分配到DBA team(可能我實習的時候幹了什麼事我也忘了)。轉正兩周多,在這之前沒有資料庫開發或者資料庫管理經驗。因為公司一直買的微軟,所以資料庫基本全用sqlserver。

前提:不能調崗;不打算離開公司;個人想走全棧,所以想做好這個工作。

問題描述:團隊會根據我學習反饋的情況給我充足過渡期和task,根據老大推薦和關注的一些MVP博客拿了個書單,目前在看sqlserver技術內幕系列的書。但是大部分DBA都是開發或運維轉的,所以,我找不到一條新手成長路線。像Java、前端的成長路線圖有很多,可以mark技能點不斷update自己學習狀態。

問題:希望有經驗的DBA,尤其是主要依賴SQL Server的,說下如果讓你自己重新開始,你會如何學習來快速成長成合格的DBA?

謝謝。


如果是希望長期在這個領域,第一階段要打好基礎,這些基礎包括操作系統,資料庫系統原理,網路,存儲,數據結構,計算機體系結構等,有一個比較好的基礎。

第二階段熟悉sql server的各種功能,以及背後對應的行業標準,比如ha的功能,dr的功能,跟蹤捕獲,擴展事件,存儲引擎原理,優化器原理等等,這方面功能非常多,不一定要學全。

第三階段是行業視野,包括sql server生態圈內,比如前端的語言,框架,中間件,在不同雲上的方案,監控報警自動化等等。


我認為合格的 DBA 要做三件事情:

1、通讀官方手冊,比如 MSDN 中關於 MSSQL 部分的所有內容。只要有時間,就多讀一遍。從實用的角度來講,我沒發現任何一本書能和官方文檔相提並論的。

2、入駐儘可能大的平台,數據量儘可能大,數據平台儘可能多樣,團隊也儘可能大些。平台很大程度決定眼界和發展。

3、將你在官方手冊掌握的一切技能,在工作平台盡一切可能使用起來。在此期間反覆鞏固官方手冊,並且多將儘力投入在白皮書上。

照這樣的路線可能需要花費一兩年時間才能有所成就。

當然,今時今日,我反對一切同行花費巨大的精力成為合格的 DBA。在現在的環境下,建議入行的新人走數據全棧路線。


SQL Server資料庫是一款綜合性的複雜軟體體,包含了硬體的調用,軟體的處理。

如果你能看到實現資料庫的源代碼,你會觸及編程的各個方面:

- CPU調度:多線程使用,資源調度與調控;

- 內存:緩存機制,數據壓縮;

- 編譯原理:T-SQL查詢引擎的編譯器演算法;

- 網路應用:TCP,Named Piples, Listener進程進度;

- 存儲結構:二叉樹,平衡樹在存儲上的應用

這些還都是非常淺顯的理論知識,你翻看資料庫自帶的文檔或者白皮書,嘗試多問自己幾個概念和原理,就很快被接下來想要知道的一切給吸引過去。

不用過一段時間,你就會碰到災備,高可用,高並發等課題。這個時候算是能做點事情了。在這個階段你想突破,可能還需要懂得前端,服務的概念,自己從頭玩一遍全棧,看看你涉及的架構是不是真的能扛得住雙11,雙12,你會無比開心。

等高峰業務也被你扛過了,你可能會對數據有想法,你可能會問自己,這麼多數據,我究竟能用它來干點啥呢?

縱觀資料庫行業發展歷史,從1950有磁帶記錄開始,有60多年的發展歷程。而RDBMS的提出,從1970年算起,一直都穩定的應用在各個領域,直到2006年hadoop的興起。我個人喜歡將hadoop的流行看做是資料庫領域的又一次突破,意味著以後的數據時代,不再是RDBMS的天下,hadoop異軍突起,對數據領域進行了一次革命。

Hadoop的流行,開始意味著(又是個人見解)數據領域的風向變了。數據的存儲,管理和應用,邁向了新的步伐。固然舊有的數據系統依舊在用,依然需要事務性數據保證業務的ACID,但更多更代表先進的應用,傳統的RDMBS已經給不了最佳的解放方案了,這就是分散式資料庫應運而生的驅動力。這可能是一種趨向,意味著數據管理要向數據應用轉勢頭。我的個人想法是,跟上時代的發展,在DBA之外,花點時間研究行業的生態圈。

我喜歡前面兩位的回答:

宋沄劍在資料庫整體框架上,給出了細節性的回答,鑒於新生代對資料庫基礎概念還掌握不全面的情況,應該快速突破這個階段。至少在開發,優化方面掌握到一定水平。如今的環境,尤其是雲環境,需要緊貼生態圈,讓自己更懂行業的需求。逼迫自己強學一些前端,後端,雲端的知識,對自己眼界與思考,是種培養。對解決問題的切入點會把握的更加精準,當別人還緊緊看著SQL性能發愁的時候,你可能已經想到了,只要在前端用個非同步就能完成。

王洪波則是站在了技術生涯方面,做了外延,並涉及到具體的應用場景,比如更多數據平台,更大規模數據量,這對一個數據人來說絕對是鍛煉眼界與技術的好環境。雖然有點偏題,但這是對發展有幫助的好建議。在SQL Server之外更有廣闊的天地,等著去開發,緊緊盯著自己的一畝三分地,產量不會太高。更多的數據流,更多的應用被我們設計的數據架構給接穩當了是前提,讓這些數據發揮爆炸級別的應用,或許更有意思。

我個人也是覺得,像雲和恩墨的蓋國強蓋先生那樣,從DBA一路打拚到公司老總的環境,正在慢慢轉向。處在迷糊期的我們,還需要跟緊老司機的步伐,看看他們在做什麼。


我補充一點,要努力學好英文,哈哈...


直接入職做DBA的機會還是挺不錯的,很多人都是在其他崗位摸爬滾打一段時間才轉成DBA。宋大師是SQL SERVER的大牛 ,講的很到位了,從市場前景看,因為現在的開發DBA需求更多一些。所以在學習DBA知識的 同時掌握一些開發的技能是有必要的。看書看博客的同時多做實驗,多實踐就可以


推薦閱讀:

目前的資料庫管理認證都有哪些呢?Oracle、DB2、MS SQL、MySQL都分別有哪些認證呢??
面向主題的資料庫技術的概念已經提出十幾年了,理念是先進的,但為什麼被實際應用很少?
自己做個erp系統,目前主流的開發軟體是什麼?

TAG:資料庫 | 資料庫管理員DBA | MicrosoftSQLServer | sqlserver |