文章選讀 - 成就DBA職業生涯
(2007-05-25 17:33:48)
下一個
許多年來,我在不同的新聞組上花費了很多時間與那些想知道如何得到數據庫管理員(DBA)的工作或者如何成長為一名DBA的IT人進行交談,現在他們有了工作。這些年來許多人針對如何達到這個目標提出了不同意見。本文即是那些意見的綜合並且能夠在如何才能出色的完成DBA的工作方麵給出好的建議。這篇文章同樣對於如何讓一名DBA變得對老板更有價值。假如你已經是一名DBA,那麽也許你會希望跳過文章的前幾段。
我應該成為一名DBA麽?
我曾問過的一個問題是一個人應該從事DBA這樣的職業麽。這個問題並不容易回答,因為它因人而異。有的人有成為一名好DBA所需要的天賦。而其他人並不認為能夠很容易掌握成為DBA的秘訣。DBA職業需要掌握一定的技能。而且還需要其他IT職業所不必需的要求。因此,為了回答這個問題,我通常給將要成為DBA的人描述DBA職業所必需的要求。下麵的段落中,我都將以問題結尾。在繼續下一段以前請花一些時間考慮並且回答這些問題。
許多人因為許多原因而立誌要成為DBA。其中一個主要原因是薪水。DBA是IT業中薪水最高的職業之一。其他人想成為DBA是因為喜歡讚揚DBA是受到的榮譽,或者因為他看上去很酷!我個人認為,成為DBA是很值得的。它是一個很有意思,令人興奮的職業。那麽,你把DBA作為一個可能的職業選擇的原因是什麽呢?
除非你已經提前準備好了,否則你可能會發現從事DBA職業充滿了挫折和令人頭痛。一個數據庫存在於操作係統和最終用戶應用程序之間。同樣地,DBA必須非常精通他的數據庫所在的操作係統。DBA並不一定需要知道所有有關操作係統的知識,但是他知道得越多越好。數據庫與操作係統聯係非常緊密。理解這種關聯是十分必要的。DBA還需要知道服務器硬件以及它如何影響與幫助數據庫。同時,DBA必須理解應用軟件。DBA可能會被要求幫助開發人員創建可靠,健全的數據庫應用程序。還有,最重要的也是最明顯的,DBA必須十分徹底的理解數據庫引擎,它是如何工作的,所有的引擎是如何組合在一起的,以及如何影響數據庫引擎向最終用戶和應用程序傳送數據的能力。我見過的最好的DBA有非常深刻的理解而且不僅僅在數據庫本身。他們知道一些係統管理與應用開發。好多時候他們在成為DBA之前有其中一個或兩個背景。無論如何,成為一名合格的而不是出色的DBA也需要許多背景知識。你是否已經做好準備開始學習直到你感到已經無法再學下去了?
許多和我交談過的,在開始DBA職業時遇到困難的人,在嚐試著吸收大量DBA所需了解的信息時實際上都會有一些問題。畢竟係統管理員是全職學習操作係統的細節。應用程序開發人員全職學習如何編寫好的程序。DBA不僅要非常了解這兩種不同的工作,而且還需要花費更多的時間去理解數據庫的體係結構,以及理解每一樣東西的每一塊是如何組合在一起的!聽起來是不是很讓人畏縮?有許多人失敗後這樣想,並且把DBA工作看作一項非常困難的事情。也有那些傳播和理解所有這些信息,並且使用這些信息做出好的,聽起來具有技術性的決定的人。正如我以前是一名DBA時喜歡說的,所有這些對我來說看上去像一個大謎團。把這些所有的很好的組合在一起就是挑戰。你是哪一種人?
許多DBA是隨時侯命的。他們會在白天或晚上的所有時間接到呼叫去解決他們的數據庫出現的致命問題。數據庫是商業信息技術基礎組織的必不可少的組成部分。沒有數據,就沒有必要擁有一個計算機係統。數據推動商業。假如amazon.com的網站不能在數據庫中搜索產品並且假如沒有人能夠為他們的產品下訂單,那麽它會變成什麽樣?它就不會在商業中存在很久。當數據庫down掉,即使隻是很短的時間,公司也會損失重大。基於這個原因,DBA到達現場後必須盡可能迅速的解決問題。許多公司有自己的DBA團隊以便可以輪流待命。這些DBA 24x7小時的維持數據庫應用程序。假如工作需要的話,你準備好隨時候命了麽?
一些DBA的職責包括為軟件打補丁或者對數據庫做些改變。通常,這些操作不能在公司職員工作的時候做,因為此時數據庫必須運行以便他們能夠工作。這意味著DBA經常不得不在很早或者深夜甚至周末,總之,在正常工作時間以外來完成工作。你準備好在非正常時間工作,或者你在找一個朝九晚五的工作?
對DBA而言,需要掌握的一個重要內容就是通常被稱為“軟技術”的東西。DBA需要在團隊中很好的工作,通常團隊是在變化的,如係統管理員,網絡管理員,應用程序開發人員,項目經理和其他人。DBA要能夠用流利的英語解釋複雜的技術概念,讓團隊中其他人明白。DBA還要能夠在數據庫相關問題上指揮團隊隊員。你的軟技術怎麽樣?
下麵不是全部列表,但是包括了DBA的典型職責:
· 把監視數據庫實例當作每日必做工作以保證其可用性。解決不可用的問題。
· 收集係統統計和性能信息以便定向和配置分析。
· 配置和調整數據庫實例以便在應用程序特定要求下達到最佳性能。
· 分析和管理數據庫安全性。控製和監視用戶對數據庫的訪問。必要時審計數據庫的使用。
· 監視備份程序。必要時提供恢複。測試備份與恢複程序。
· 升級RDBMS軟件並且在必要時使用補丁。必要時升級或者遷移數據庫實例。
· 通過數據庫相關動作來支持應用程序開發人員。
· 跟隨數據庫趨向和技術。當可應用時使用新技術。安裝,測試和評估Oracle新的相關產品。
· 執行存儲和物理設計。均衡設計問題以完成性能優化。
· 創建,配置和設計信的數據庫實例。
· 診斷,故障檢測和解決任何數據庫相關問題。必要時聯係Oracle支持人員以便使問題得到較好的解決。
· 確保Oracle網絡軟件(SQL*Net, Net8, Names, OiD)配置和運行的很好。
· 與係統管理員(Unix & NT)一起工作以保證Oracle相關事務得到很好的處理。
· 為有效的,定期的維護數據庫創建任何必要的腳本。
前麵各段的問題是為了使你考慮一名DBA該做些什麽,幫助你決定這是不是適合你的職業。我並非意味著假如你的目標是成為DBA這些會阻止你。我隻是嚐試著展現一些事實。我看到過一些DBA一旦被實際工作打擊了就一蹶不振。他們花費時間,精力和一些金錢獲得了他們的第一份DBA工作。我個人認為這個職業非常有價值。而且我無法想像現在做任何其他的會怎樣。所以,這一段幫助你決定這是不是你希望從事的。假如它是,那麽盡你所有去得到它!
我怎樣得到第一份DBA工作?
你已經閱讀了前麵的段落並且認為成為一名DBA是一個好的職業。祝賀你!我希望你的職業能變成你想像得那麽令人興奮和有意義。那麽,你如何找到第一份DBA工作?這個問題我已經聽別人問了許多許多遍。
在90年代早期,因特網急速發展。它使公司象草一般萌芽。公司蜂擁而至並且開始創建他們在網上的形象。幾乎所有這些有網站的公司都需要一個數據庫作為web應用的後台。不幸的是,當時在該領域卻沒有那麽多DBA。在IT業,DBA變得奇缺。那段時間裏,得到一份DBA工作看上去隻要可以拚出“Oracle”或者可能隻是在大學裏接觸過一學期的數據庫就行。為了使生活變得更好,DBA的匱乏促使公司付給有潛力的職員很高的薪水。假如你想要成為一名DBA,很容易,非常容易。你需要做的就是證明你了解什麽是數據庫然後工作就會比你預期的更早的出現在你麵前。
然後因特網的泡沫破滅了。大量投產因特網的公司破產。許多給公司工作的DBA重新尋找工作。缺少DBA的公司找到一名有DBA經驗的人比以前容易得多。在21世紀初期,由於經濟並不十分穩固,因此生活並不容易(至少在美國如此)。公司都勒緊了他們的褲腰帶。所有這些轉化為更少的工作機會和DBA候選人更少的工作空缺。
得到第一份DBA工作的最艱難的部分是每一個職位都要求有一些工作經驗。如果你從公司的角度出發,你就可以理解為什麽對DBA職位而言經驗是必需的。假如他沒有一點經驗,你會付給這個人很高的工資讓他去操作,維護和運行你IT基礎組織的最大最重要的一部分麽?你的公司會付錢給一名沒有經驗的DBA麽?並且,在等待他成長起來的過程中可能會損失上百萬美元的收入。對大多數公司而言,這些問題的答案肯定是‘不’。所以,沒有經驗,獲得你的第一份DBA工作是很困難的。
第一份DBA工作現在成了惡性循環的境遇。假如我沒有任何經驗,我怎樣才能得到DBA的工作呢?我沒有工作的話又怎麽能得到DBA經驗呢?這是要戰勝的最困難的障礙。最困難的部分是獲得第一個DBA工作。這部分的剩下部分將針對實現你第一個DBA工作的目標給你一些建議。
提示#1:接受教育。--盡可能多的學習有關數據庫的知識。這很可能將占用你正常工作以外的部分時間也精力。參加本地大學舉辦的數據庫培訓班。許多培訓公司都會舉辦數據庫管理員的培訓班。假如你的老板不資助你的學習,那麽你可能不得不自己支付這筆費用。許多DBA職業要求至少為計算機科學或相關專業本科以上學曆,因此你必須至少有那樣的文憑。
提示#2:鍛煉成為DBA。--許多數據庫供應商都允許你下載他們數據庫係統的測試版或評估版。下載一份並且在自己的個人電腦上安裝軟件。練習使用數據庫。故意破壞數據庫並且嚐試修複它。嚐試著履行你所能想到的盡可能多的DBA職責。測試和磨練你在自己的測試平台上的技能這樣你就可以證明你的數據庫管理能力。
提示#3:獲得認證。--許多數據庫提供商都提供自己的數據庫產品的認證。許多公司現在都把認證看作是一種標準。需要記住的一件事是僅獲得認證是不夠的。通過DBA認證測試並不意味著你知道如何管理一個數據庫。它隻是告訴你以後可能的老板,現在你擁有了一定的技術。它還告訴你的老板你對DBA工作的態度是很認真的。我看到許多人抱怨他們已經得到了認證但是沒有經驗,卻仍然不能得到第一份DBA工作。認證本身並不能使你得到工作,但它是無害的。即使沒有其他的,在你進行認證的時候你也已經學到了許多知識。隻是不要依賴認證來給你帶來你要找的工作。你需要的比這還要多。但它會在最後幫助你。
提示#4:利用你現有的技能。--許多DBA具有係統管理員背景。其他的有應用程序開發背景。假如可能,查看你能否利用現有的技能來得到工作。現在的目標就是為你和你的老板創造一個雙贏的局麵。例如,讓我們假設你已經是一名係統管理員而想進入DBA領域。也許你會找到一份工作,這份工作一部分時間裏可以用到你的係統管理技能,並且在剩下的時間裏可以使你涉及到數據庫管理領域。假如你已經是一名某個產品平台上的DBA但你希望轉到其他產品平台,那麽看看你能否找到一份同時接觸兩個產品平台的工作。這樣,公司和你都得到了想要的。在你定向到了DBA工作後,你可以試著得到一個能讓你全職作它的職位,也許還可以在同一個公司中。
提示#5:利用現在的機會。--有時候,一個人進入DBA領域僅僅需要的是正確的地方和正確的時機。假如你現在的老板有一個機會讓你進行任何數據庫的項目,抓住這個機會!任何數據庫經驗就比沒有數據庫經驗要好。讓你的管理者知道你十分積極的在尋找任何可能的數據庫機會。他們就有可能在下次機會到來的時候想到你。進行這些數據庫項目以及看到你要成為一個DBA的渴望以後,他們可能會決定培訓你,提拔你。許多許多人都是以這種方式獲得他的第一個DBA工作,在進行了一些數據庫相關的項目後不知不覺的成為一名較低級的DBA。通常當一名DBA離開公司後,公司將在內部尋找一個候選人,假如他們認為這名候選人是可訓練的話。
提示#6:尋找較低級的DBA職位。--假如你隻是為了一個較低級的DBA工作,看到DBA職位的需求描述說他們正在尋找高級DBA或者其他的。所以,讓我們嚴謹一些。你並沒有一個高級方麵的經驗。我已經討論過了對於這樣的職位為什麽公司不會考慮你。但是他們會在低級的職位上考慮你。低級的DBA在高級DBA的指導下完成工作。他們摸索竅門。一般來說,高級DBA對數據庫承擔責任,同時也獲得所有的榮譽。但是不要焦急。隨著你的事業發展,你將會有越來越多的責任和得到越來越多的信任。因為你沒有任何經驗,你應該從這裏開始啟航。
我也聽到過一些公司尋找一名高級DBA,但是到最後,他們實際想要雇一名低級的DBA。你或許希望申請這樣的職位雖然你也許沒有資格。他們可能還是會決定雇傭你。但是提前說明你仍然在摸索階段並且已經是較低級的DBA水平。不要試圖欺騙他們讓他們認為你是高級DBA的水平。這隻會降低你得到這項工作的機會。
這些提示將幫助你得到第一份DBA的工作。祝你在尋找工作時有好運氣。當你已經找到了第一份DBA工作後,繼續下麵的部分來學習如何往下走下去。
我剛得到我的第一份工作!現在該怎樣?
祝賀你!你現在是DBA俱樂部的正式成員了!對於這份夢寐以求的令人激動的職業,你準備好了麽?你的工作才剛開始並且你在學習上已經落在後麵。你將會發現要成為一名高效的數據庫管理員有大量的知識你必須掌握。你的第一年或前兩年將花費比以前更多的時間來學習。假如你發現學習知識的數量使你大腦超負荷,那麽休息一下,歇口氣,然後再回到學習中去。為了幫助你繼續走下去,你可以按照下麵的方法進行:
步驟#1: 關係型數據庫理論 –這部分我假設你將管理的數據庫是一個“關係型”數據庫。其他數據庫模型也存在,但是關係型模式是近二十年工業上占統治地位的一種數據庫模式。假如你的數據庫係統是其他的模式,那麽學習它的理論。相關數據庫理論是十分重要的。它是其他一切的基礎。我也看到許多跳到數據庫管理職位的人從不想去學習純粹的關係型數據庫理論。不可避免的,在他們的事業中對理論基礎的匱乏作為缺點暴露了出來。假如你對關係型數據庫理論理解得很好,那麽你將非常容易的在任何平台的關係型數據庫管理係統(RDBMS)中轉變。我使用Oracle數據庫,或者IBM的DB2,或者微軟的SQL Server是無關緊要的。他們都是關係型數據庫係統。他們在最底層都在做著相同的事情。區別在於他們怎樣去做相同的事情。純粹的關係型數據庫理論對於較低級的DBA來說並非必需的。但是假如你想要超越低級DBA的水平它就是十分重要的。許多大學的教科書都很好的包含了關係型數據庫的理論。其中一本被廣泛使用的教科書就是由Elmasri and Navathe編寫的數據庫係統基礎,Bejamin/Cummings Press。
步驟#2: 徹底的學習查詢語言 –數據庫都有語言讓你能夠從數據庫中得到數據,把數據放到數據庫中,以及修改數據庫中的數據。對於關係型數據庫而言,這種語言就是結構化查詢語言(SQL)。這門語言是你與數據庫接觸的工具。不能讓這個工具成為以後學習的障礙,這一點很重要。在你的測試數據庫中練習不同的SQL語句直到他們變成了你的習慣。這方麵的一本非常好的書叫做Oracle 9i完全參考(Oracle 9i The Complete Reference)由Loney 和Koch編寫,Oracle Press。每一名Oracle DBA都應該在他事業的早期閱讀這本書。Oracle 9i參考手冊(Oracle 9i SQL Reference manual)是另一個很重要的知識來源。在他們的技術網站TechNet上(http://technet.oracle.com)你可以訪...t上有一個賬號。
步驟#3: 開始學習基本的數據庫管理工作 –這難道不是你最開始在這裏的原因?為什麽它在列表的第三位?我們嚐試著建造一個知識的金字塔,我強烈的感覺到一個人需要知道關係型數據庫理論和SQL,並且在你學習如何進行基本的數據庫管理工作時把他們當作工具來使用。這些工作包括啟動和關閉數據庫,備份和恢複數據庫,以及創建/刪除/修改數據庫對象。對於Oracle數據庫管理而言,在市麵上有大量的書籍可以給你所期望的一個很好的體會。這本書是Oracle 9i DBA手冊(Oracle 9i DBA Handbook by Loney on Oracle Press)。我知道的大多數DBA都在他們事業的早期不隻一遍的閱讀過這本書。這裏,你應該同時閱讀和理解Oracle 9i 概念指導,Oracle 9i管理員指導,以及Oracle 9i備份與恢複指導(Oracle 9i Concepts Guide, the Oracle 9i Administrator’s Guide, and the Oracle 9i Backup and Recovery Guide)都來自Oracle文檔。
步驟#4: 閱讀,閱讀,再閱讀 –由於你才剛開始你的DBA職業生涯,因此你正在開始為你的技能奠定基礎。這需要一段很長的時間去形成,吸收和領會所有你將學到的知識。毫無疑問的,比你資深的DBA由許多工作要做,因此他們可能不會總是騰出大量時間輔導你的學習。你不得不靠自己學習很多東西。這就是閱讀的目的。市麵上有許多書籍可以解答許多數據庫相關的話題。Oracle Press是Oracle公司的官方出版社,有大量的Oracle相關書籍。同時也有其他的出版社,如Wrox Press 和 O’Reilly 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的每一天裏,你學到了許多新的和令人激動的事情。也許在你職業生涯的這段時間裏,有幾天你沒學到任何新的東西。但你仍然有很多要學習。成為一名OCP(Oracle Certified Professional) DBA要求你必須已經學到了數據庫管理所有方麵的基礎。我發現在OCP考試的學習過程中,我學到了在我工作中從未接觸過的東西。一次我學到了我從未碰到過的一個特殊課題,在後來的日子裏我就能夠使用那個知識解決問題。假如我從為在OCP考試中學倒它,那麽我永遠也不會用那種特殊的方法去解決問題。這已經一次次的發生在我的麵前。有的人可能會說認證實際上真的不值得。我要說它隻會對你有益無害。所以,去取得認證吧!
步驟#5: 獲得一個資源庫 – 在前麵的部分中,我指出每個DBA都應該在Technet上有個賬號。這是你其中一個主要資源。但是同時還有許多其他資源。很多人共享他們的Oracle知識。假如你還沒有開始,你應該用網絡瀏覽器去搜索並收集很多Oracle資源。願意的話,你可以從訪問我的網站(http://www.peasland.net)開始。下麵是一些Oracle DBA必須了解得網站列表:
ü Ask Tom – http://asktom.oracle.com
ü Jonathan Lewis web site - http://www.jlcomp.demon.co.uk/
ü Ixora (Steve Adams) – http://www.ixora.com.au
ü Orapub – http://www.orapub.com
ü Metalink (Oracle支持網站) – http://metalink.oracle.com
還有許多其它的好網站。
步驟#6: 開始在不同的新聞組和論壇上交流 – 也許你已經發現了他們,但假如現在你還沒有那麽是時候去開始了。有許多的新聞組和論壇可以回答你的任何Oracle問題。在Oracle群落裏還有許多高手願意和你共享他們的知識。你所要做的就是提問。下麵是一個列表包含了可以開始交流的最好的因特網團體:
ü Usenet newsgroups – comp.databases.oracle.server 和 comp.databases.oracle.misc 是兩個可以交流的非常著名的世界性的新聞組。他們擁有大量的針對Oracle問題的交流卷宗。觀看這些組的最好的方法式使用新聞廣播員。但是假如你想通過基於web的方式訪問,也可以通過Google搜索引擎搜索它。 (http://groups.google.com/groups?hl=...atabases.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數據庫是一個非常複雜的東西。為了更上一層,你必須精通產品的許多組成部分。以備份與恢複開始。成為一名備份與恢複的專家。故意的破壞數據庫然後察看如何恢複它。嚐試以任何可能的方式破壞數據庫然後查看還有沒有可能恢複。你將徹底的理解備份與恢複的概念。在你成為了備份與恢複的專家以後,再去成為其他領域的專家。你會有無窮無盡的題目要去掌握。在你整個職業生涯中都保持如此。但是請記住,無論你有多麽專業,在某些領域,某些人會在某些方麵知道的比你多。不要帶個人情緒。隻是盡可能多的從那個人那裏學到知識。
Route #3: 積極參加新聞組,論壇和用戶組 – 在前麵,我提過為什麽不同的新聞組和論壇是學習新知識的很好的地方。現在輪到你進行下一步並且去回答任何你能夠回答的問題。你將會驚訝於在這過程中你能學到那麽多!
Route #4: 寫白皮書並且展示它們 – 這與前麵提到的方法類似。首先,共享你擁有的知識是很重要的。假如你的職業生涯已經走到這一步,那麽從某種意義上講,是離不開他人的貢獻的。所以,現在是你為他人奉獻的時候了。第二,當你企圖共享你的信息的時候會有令人驚異的事情發生。在你要用清楚的,簡練的語言表述問題以便其他人能夠使用時,那些信息在你的頭腦裏經過了一個令人瞠目的過程。這個過程使你鞏固了知識,這是無法通過其它方法進行的。所以在白皮書中共享那些信息,討論會,以及新聞組和論壇都是你學習和使你的能力更上一層的非常好的方法。順著這條路,你應該作兩件事。第一,認識到你將會犯錯誤。其他人將會很高興的指出那些錯誤,有時在某種意義上那並不是很好。不要企圖掩藏你的錯誤。承認它們並從它們那裏學習。第二,學會說你不知道答案而不是企圖以欺騙的方式通過。人們早晚會知道你在企圖蒙蔽他們。簡單的告訴他們現在你對答案並不肯定,但你會在查到答案後回來告訴他們。假如你時刻謹記這兩件事,你就不會違背你的誠實而且你將成長為一名職業的IT人。
步驟#5: 成為解決Oracle問題的專家– 高級DBA通常都是被看作是解決複雜的Oracle問題的人。你將會用到你所有的技術來解決許多問題,這些技術都是你的職業生涯中積累下來的。我前麵提到的任何事都將會在解決問題的過程中用到;文檔,書籍,新聞組,測試案例,和其它DBA都將輔助你解決問題。
步驟#6: 成為性能調優的專家– 高級DBA通常都是被看作是調整數據庫和應用程序性能的人。假如你是高級DBA但是你卻不能分析性能瓶頸,那麽你的公司將會到別處尋找這些服務。
步驟#7: 成為承載能力計劃的專家– 高級DBA通常都是被看作是根據數據增長量和交易增長來計劃數據庫承載能力的人。高級DBA需要在影響應用程序性能以前發現係統瓶頸。例如,DBA應該知道在數據庫將可用的磁盤空間用完以前預置更多的磁盤空間。不密切關注承載能力計劃將會導致生產數據庫宕機。
步驟#8: 密切關注新的技術– 高級DBA應該對IT界的關數據庫技術的未來有好的建議。有什麽可用的技術可以幫助數據庫?例如,學習存儲領域網的優缺點以及如何把它們應用到數據庫係統。有什麽技術在不遠的將來可以用,哪些能夠幫助我們?例如,寫這篇文章的時候,linux操作係統正在變得越來越流行。Lunix會給你的數據庫操作係統平台帶來些什麽?它能為你的公司工作麽?
結論
從獲得第一份工作,到從一名初級的DBA成長成一名高級DBA,我希望這篇文章在如何度過你的職業生涯的各個階段方麵給了你一些建議。無論你現在處在你的DBA職業生涯的哪一階段都可以用到這篇文章。