DBA成長計劃

 

DBA成長計劃

 初級DBA

步驟#1: 關係型數據庫理論–這部分我假設你將管理的數據庫是一個“關係型”數據庫。其他數據庫模型也存在,但是關係型模式是近二十年工業上佔統治地位的一種數據庫模式。假如你的數據庫系統是其他的模式,那麼學習它的理論。相關數據庫理論是十分重要的。它是其他一切的基礎。我也看到許多跳到數據庫管理職位的人從不想去學習純粹的關係型數據庫理論。不可避免的,在他們的事業中對理論基礎的匱乏作爲缺點暴露了出來。假如你對關係型數據庫理論理解得很好,那麼你將非常容易的在任何平臺的關係型數據庫管理系統(RDBMS)中轉變。我使用Oracle數據庫,或者IBMDB2,或者微軟的SQL Server是無關緊要的。他們都是關係型數據庫系統。他們在最底層都在做着相同的事情。區別在於他們怎樣去做相同的事情。純粹的關係型數據庫理論對於較低級的DBA來說並非必需的。但是假如你想要超越低級DBA的水平它就是十分重要的。許多大學的教科書都很好的包含了關係型數據庫的理論。其中一本被廣泛使用的教科書就是由Elmasri and Navathe編寫的數據庫系統基礎,Bejamin/Cummings Press

 

步驟#2: 徹底的學習查詢語言–數據庫都有語言讓你能夠從數據庫中得到數據,把數據放到數據庫中,以及修改數據庫中的數據。對於關係型數據庫而言,這種語言就是結構化查詢語言(SQL)。這門語言是你與數據庫接觸的工具。不能讓這個工具成爲以後學習的障礙,這一點很重要。在你的測試數據庫中練習不同的SQL語句直到他們變成了你的習慣。


步驟#3: 開始學習基本的數據庫管理工作–這難道不是你最開始在這裏的原因?爲什麼它在列表的第三位?我們嘗試着建造一個知識的金字塔,我強烈的感覺到一個人需要知道關係型數據庫理論和SQL,並且在你學習如何進行基本的數據庫管理工作時把他們當作工具來使用。這些工作包括啓動和關閉數據庫,備份和恢復數據庫,以及創建/刪除/修改數據庫對象。

 

步驟#4: 閱讀,閱讀,再閱讀–由於你纔剛開始你的DBA職業生涯,因此你正在開始爲你的技能奠定基礎。這需要一段很長的時間去形成,吸收和領會所有你將學到的知識。毫無疑問的,比你資深的DBA由許多工作要做,因此他們可能不會總是騰出大量時間輔導你的學習。你不得不靠自己學習很多東西。這就是閱讀的目的。市面上有許多書籍可以解答許多數據庫相關的話題。Oracle PressOracle公司的官方出版社,有大量的Oracle相關書籍。同時也有其他的出版社,如Wrox Press OReilly Press。你也可以找到Oracle文檔來閱讀。並且還有許多網站和新聞組。儘可能多的讀書使你能夠繼續下去。還有,不只一遍的閱讀它們可以使你吸收你第一次閱讀時錯過的內容。

 

步驟#5: 創建測試案例–我經常看到初學者問一些很基礎的問題,其實假如他們花一些時間來考慮,這些問題都是很容易解答的。毫無疑問的,在你開始學習Oracle的時候你會有許多的問題。看看這些問題你能不能自己回答出來。例如,我又一次被問到能不能向有唯一性約束的列中插入空值。最開始,這看上去也許不是很容易回答的問題。但它卻是非常容易去試驗的!只需要創建一個簡單的表。在其中的一列,假如唯一性約束。嘗試着在該列插入一個空值。有效麼?你應該能夠非常容易的回答出這個問題了。那麼,爲什麼要創建這些案例呢?一個原因是這樣做可以提高你解決問題的能力。創建這些案例需要的技能就是解決問題用到的技能。解決問題的技能將會對你的DBA事業有很大的幫助。另一個原因是隨着你的事業的發展,你將經常需要創建更復雜的測試案例以便保證數據庫和應用程序的成功。在將來,甚至簡單的測試案例也可以組成更復雜的數據庫和應用程序分解

 

步驟#6: 找一個良師–一個良師能夠爲你的DBA生涯(或者其它類似的職業)引領方向。他們能夠給你指示,回答問題以及在你的DBA的成長過程中幫助你節約一些時間。但願這篇文章能夠在你事業發展的一段時間內起到良師益友的作用。假如你與一名資深的DBA共同工作,那麼那個人應該有責任爲你的事業進行有益的指導。你也可以同時選擇其他的人指導你。

 

步驟#7: 參加本地用戶羣–許多跨國家的城市有本地用戶羣,他們定期聚會討論數據庫相關的話題。假如可能,參加其中一個本地用戶羣。這將給你一個與他人相互交流的很好的方法。

 

我如何能夠從一名DBA初學者變爲一個具有中級水平的DBA

 

你已經成爲DBA一段時間了,你現在希望你的技術水平提高一階麼?下一步該怎麼做?首先,往回看前面的部分,確認你已經完成了所有的步驟。徹底理解SQL語言是十分重要的。理解關係型數據庫理論和掌握基本的數據庫管理任務也是非常重要的。到如今,你應該閱讀文檔和其他書籍到已經鬱悶了。假如沒有,那麼你還沒準備好繼續深造,增長你的DBA的技術水平。假如你已經準備好繼續了,我已爲你的繼續深造準備了一些方法。

 

步驟#1: 學習操作系統和你的服務器硬件–正如我前面所說,數據庫存在於操作系統和服務器硬件之上。理解這些組成部分如何工作是很必要的。你應該知道如何與特殊的操作系統相合。你如何刪除或者編輯文件?假如你的操作系統是Unix,你應該掌握命令行以及Unix命令如何輔助你工作。對於運行在Windows或其他操作系統上而言也是一樣的。你同時需要對服務器的硬件有一定的瞭解。物理內存和虛擬內存有什麼區別?RAID是什麼以及不同的級別是如何產生影響的?爲什麼數據庫喜歡更多的物理硬盤而非一個大硬盤卷?你需要知道這些事情以便你能夠容易的與系統管理員進行如何配置好你的服務器以便使它能夠充分的支持數據庫方面的交談。

 

步驟#2: 學習應用程序設計因爲它與數據庫相關–如前面所述,數據庫存在於操作系統與數據庫應用程序之間。你真的需要這兩者。SQL語言是如何幫助創建好的應用程序的?綁定變量是什麼並且爲什麼他們很重要?Tom Kyte寫了一本非常好的書,在Oracle應用程序設計上給出了很好的建議。他的Expert One-on-one Oracle書可在Wrox Press找到。我強烈推薦閱讀此書。他詳細的敘述了那些能夠生成和破壞Oracle應用程序的東西。你需要知道這些,因爲你的應用程序開發人員希望從你這裏得到指導和數據庫知識。學習任何與應用程序設計有關的知識。也許參加一個關於軟件工程,操作系統或數據結構的課程班會有好處。

 

步驟#4: 取得認證–也許你的工作並不需要,但是取得認證一定對你有益。作爲DBA的每一天裏,你學到了許多新的和令人激動的事情。也許在你職業生涯的這段時間裏,有幾天你沒學到任何新的東西。但你仍然有很多要學習。成爲一名OCPOracle Certified Professional DBA要求你必須已經學到了數據庫管理所有方面的基礎。我發現在OCP考試的學習過程中,我學到了在我工作中從未接觸過的東西。一次我學到了我從未碰到過的一個特殊課題,在後來的日子裏我就能夠使用那個知識解決問題。假如我從爲在OCP考試中學倒它,那麼我永遠也不會用那種特殊的方法去解決問題。這已經一次次的發生在我的面前。有的人可能會說認證實際上真的不值得。我要說它只會對你有益無害。所以,去取得認證吧!

 

步驟#5: 獲得一個資源庫–在前面的部分中,我指出每個DBA都應該在Technet上有個賬號。這是你其中一個主要資源。但是同時還有許多其他資源。很多人共享他們的Oracle知識。假如你還沒有開始,你應該用網絡瀏覽器去搜索並收集很多Oracle資源和 DB2資源。願意的話,下面是一些OracleDB2  DBA必須瞭解得網站列表:

       Ask Tom – http://asktom.oracle.com

        DB2中國- http://www.db2china.net

          51CTO-- www.51cto.com

 

還有許多其它的好網站。

 

步驟#6: 開始在不同的新聞組和論壇上交流–也許你已經發現了他們,但假如現在你還沒有那麼是時候去開始了。有許多的新聞組和論壇可以回答你的任何Oracle問題。在Oracle羣落裏還有許多高手願意和你共享他們的知識。你所要做的就是提問。下面是一個列表包含了可以開始交流的最好的因特網團體:

 

Usenet newsgroupscomp.databases.oracle.servercomp.databases.oracle.misc是兩個可以交流的非常著名的世界性的新聞組。他們擁有大量的針對Oracle問題的交流卷宗。觀看這些組的最好的方法式使用新聞廣播員。但是假如你想通過基於web的方式訪問,也可以通過Google搜索引擎搜索它。(http://groups.google.com/groups? ...mp.databases.oracle)

 

Quest Pipelines–當他們在最開始還屬於軟件提供商RevealNet的時候,被稱爲the RevealNet Pipelines。現在,Quest購買了RevealNet並且擁有Pipelines。因爲Pipelines是中等的,所以這些是我最喜歡的。你可以在這裏找到Pipelines(http://www.quest-pipelines.com/index.asp)

 

觀察別人是如何經歷考驗和磨難的是一件好事。假如你有問題,可以自由的在羣裏提出來。假如你要提出問題,通常應該包括一些信息,比如你的Oracle版本和Oracle運行的平臺。這些將會得到有很大的差別的答案。假如你忘記了,會有人提醒你!甚至你不用提問也可以從其他人的答案中學到許多知識。我已經記不得多少次我之所以能夠解決問題完全是因爲我記得其他人在新聞組裏問過相同的問題。

 

我如何從一名具有中級水平的DBA轉變爲一名高級DBA?

 

好,作爲DBA你已經堅持不懈的努力了很長時間。你感到自己已經準備好往前再走一步。成爲一名高級DBA需要什麼?下面的部分將幫助你走下去。

 

步驟#1: 閱讀所有的文檔– Oracle文檔通常並不是很容易閱讀的。無數次,你翻閱文檔只是爲了要弄清整件事情。假如文檔是最好的東西,那麼那些站在你的書架裏的Oracle書籍就不會有市場。但是文檔確實包含了一些無法在任何其他地方找到的信息。例如,你無法找到每一個專門的INIT.ORA參數或V$視圖的詳細說明。書本上也許會涉及一部分,但是Oracle文檔卻包含它們所有。我遇到過一個非常厲害的高級DBA,他沒有從頭至尾的閱讀過Oracle文檔。這不是偶然的。Oracle文檔是必須閱讀的。也許到現在爲止你已經讀過Oracle概念指導十二遍了。但是當Oracle 10i發佈了,你還要再次閱讀。任何有關10i的新概念將在文檔裏記錄。假如你真的想更上一層,那麼,去閱讀那些文檔。不要逃避它。

 

步驟#2: 成爲一名專家– Oracle數據庫是一個非常複雜的東西。爲了更上一層,你必須精通產品的許多組成部分。以備份與恢復開始。成爲一名備份與恢復的專家。故意的破壞數據庫然後察看如何恢復它。嘗試以任何可能的方式破壞數據庫然後查看還有沒有可能恢復。你將徹底的理解備份與恢復的概念。在你成爲了備份與恢復的專家以後,再去成爲其他領域的專家。你會有無窮無盡的題目要去掌握。在你整個職業生涯中都保持如此。但是請記住,無論你有多麼專業,在某些領域,某些人會在某些方面知道的比你多。不要帶個人情緒。只是儘可能多的從那個人那裏學到知識。

 

步驟 #3: 積極參加新聞組,論壇和用戶組–在前面,我提過爲什麼不同的新聞組和論壇是學習新知識的很好的地方。現在輪到你進行下一步並且去回答任何你能夠回答的問題。你將會驚訝於在這過程中你能學到那麼多!

 

步驟 #4: 寫白皮書並且展示它們–這與前面提到的方法類似。首先,共享你擁有的知識是很重要的。假如你的職業生涯已經走到這一步,那麼從某種意義上講,是離不開他人的貢獻的。所以,現在是你爲他人奉獻的時候了。第二,當你企圖共享你的信息的時候會有令人驚異的事情發生。在你要用清楚的,簡練的語言表述問題以便其他人能夠使用時,那些信息在你的頭腦裏經過了一個令人瞠目的過程。這個過程使你鞏固了知識,這是無法通過其它方法進行的。所以在白皮書中共享那些信息,討論會,以及新聞組和論壇都是你學習和使你的能力更上一層的非常好的方法。順着這條路,你應該作兩件事。第一,認識到你將會犯錯誤。其他人將會很高興的指出那些錯誤,有時在某種意義上那並不是很好。不要企圖掩藏你的錯誤。承認它們並從它們那裏學習。第二,學會說你不知道答案而不是企圖以欺騙的方式通過。人們早晚會知道你在企圖矇蔽他們。簡單的告訴他們現在你對答案並不肯定,但你會在查到答案後回來告訴他們。假如你時刻謹記這兩件事,你就不會違揹你的誠實而且你將成長爲一名職業的IT人。

 

步驟#5: 成爲解決Oracle問題的專家–高級DBA通常都是被看作是解決複雜的Oracle問題的人。你將會用到你所有的技術來解決許多問題,這些技術都是你的職業生涯中積累下來的。我前面提到的任何事都將會在解決問題的過程中用到;文檔,書籍,新聞組,測試案例,和其它DBA都將輔助你解決問題。

 

步驟#6: 成爲性能調優的專家–高級DBA通常都是被看作是調整數據庫和應用程序性能的人。假如你是高級DBA但是你卻不能分析性能瓶頸,那麼你的公司將會到別處尋找這些服務。

 

步驟#7: 成爲承載能力計劃的專家–高級DBA通常都是被看作是根據數據增長量和交易增長來計劃數據庫承載能力的人。高級DBA需要在影響應用程序性能以前發現系統瓶頸。例如,DBA應該知道在數據庫將可用的磁盤空間用完以前預置更多的磁盤空間。不密切關注承載能力計劃將會導致生產數據庫宕機。

 

步驟#8: 密切關注新的技術–高級DBA應該對IT界的關數據庫技術的未來有好的建議。有什麼可用的技術可以幫助數據庫?例如,學習存儲領域網的優缺點以及如何把它們應用到數據庫系統。有什麼技術在不遠的將來可以用,哪些能夠幫助我們?例如,寫這篇文章的時候,linux操作系統正在變得越來越流行。Lunix會給你的數據庫操作系統平臺帶來些什麼?它能爲你的公司工作麼?

 

結論

 

從獲得第一份工作,到從一名初級的DBA成長成一名高級DBA,我希望這篇文章在如何度過你的職業生涯的各個階段方面給了你一些建議。無論你現在處在你的DBA職業生涯的哪一階段都可以用到這篇文章。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章