(轉載) 成就DBA職業生涯, Grow That DBA Career
2020-11-20
重新排版 2007 年 Brian Peasland 關於 DBA 職位描述的經典文章以及收錄並潤飾其中文翻譯版本 🛰️
中文翻譯
轉錄自:成就DBA職業生涯
介紹
許多年來,我在不同的新聞組上花費了很多時間與那些想知道如何得到資料庫管理員(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的工作重點摘要
- 可用性 (Availability)
- 效能 (Performance)
- 安全性 (Security)
- 除錯 (Trouble shooting)
- 備份與還原 (Backup & Restore)
- 更新、升級與遷移資料庫 (Update, Upgrade and Mirgrate Database)
前面各段的問題是為了使你考慮一名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 : 關聯式資料庫理論 (Relational Database)
這部分我假設你將管理的資料庫是一個「關聯式」資料庫。其他資料庫模型也存在,但是關聯式模式是近二十年業界上占統治地位的一種資料庫模式。假如你的資料庫系統是其他的模式,那麼學習它的理論。相關資料庫理論是十分重要的。它是其他一切的基礎。我也看到許多跳到資料庫管理職位的人從不想去學習純粹的關聯式資料庫理論。
不可避免的,在他們的事業中對理論基礎的匱乏作為缺點暴露了出來。假如你對關聯式資料庫理論理解得很好,那麼你將非常容易的在任何平台的關聯式資料庫管理系統(RDBMS)中轉變。我使用Oracle資料庫,或者IBM的DB2,或者微軟的SQL Server是無關緊要的。
他們都是關聯式資料庫系統。他們在最底層都在做著相同的事情。區別在於他們怎樣去做相同的事情。純粹的關聯式資料庫理論對於較低級的DBA來說並非必需的。但是假如你想要超越低級DBA的水平它就是十分重要的。許多大學的教科書都很好的包含了關聯式資料庫的理論。其中一本被廣泛使用的教科書就是由Elmasri and Navathe編寫的資料庫系統基礎。
步驟#2 : 徹底的學習查詢語言 (Learn T-SQL The Hard Way)
資料庫都有語言讓你能夠從資料庫中得到數據,把數據放到資料庫中,以及修改資料庫中的數據。對於關聯式資料庫而言,這種語言就是結構化查詢語言(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)你可以訪問所有的Oracle在線文檔。你必須注冊一個賬號,但是它是免費的。每個都應該在TechNet上有一個賬號。
步驟#3 : 開始學習基本的資料庫管理工作 (Manage Database)
這難道不是你最開始在這裏的原因?為什麼它在列表的第三位?我們嘗試著建造一個知識的金字塔,我強烈的感覺到一個人需要知道關聯式資料庫理論和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 : 找一個良師 (Mentor)
一個良師能夠為你的DBA生涯(或者其它類似的職業)引領方向。他們能夠給你指示,回答問題以及在你的DBA的成長過程中幫助你節約一些時間。但願這篇文章能夠在你事業發展的一段時間內起到良師益友的作用。假如你與一名資深的DBA共同工作,那麼那個人應該有責任為你的事業進行有益的指導。你也可以同時選擇其他的人指導你。
步驟#7 : 參加本地用戶群 (Community)
許多跨國家的城市有本地用戶群,他們定期聚會討論資料庫相關的話題。假如可能,參加其中一個本地用戶群。這將給你一個與他人相互交流的很好的方法。
我如何能夠從一名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? ... 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職業生涯的哪一階段都可以用到這篇文章。
英文原文
GROW THAT DBA CAREER, Brian Peasland 2007
peasland.net
Over the years, I've spent lots of time on various newsgroups and talking with Information Technology professionals who want to know how to get a job as a Database Administrator (DBA), or how to grow as a DBA, now that they have the job. Many individuals have offered many different pieces of advice over the years on how to accomplish these goals. This paper is a culmination of those ideas and can give some suggestions on how to land a rewarding and exciting job as a DBA. This paper will also give ideas on how to grow as a DBA to become even more valuable to your employer. If you already have a job as a DBA, you might wish to skip the first few sections of this paper.
Introduction
Over the years, I've spent lots of time on various newsgroups and talking with Information Technology professionals who want to know how to get a job as a Database Administrator (DBA), or how to grow as a DBA, now that they have the job. Many individuals have offered many different pieces of advice over the years on how to accomplish these goals. This paper is a culmination of those ideas and can give some suggestions on how to land a rewarding and exciting job as a DBA. This paper will also give ideas on how to grow as a DBA to become even more valuable to your employer. If you already have a job as a DBA, you might wish to skip the first few sections of this paper.
Should I Become a DBA?
One of the questions I've been asked to answer is should a person pursue a job as a DBA. This is not an easy question since it depends on the individual. Some individuals have the talent that is required to become a good DBA. Other individuals do not find the duties required of a DBA to be particularly easy to grasp. The DBA position does require that the individual hold a certain skill set. And there are demands on this individual that other IT positions do not necessarily require. So to answer this question, I often give the prospective DBA candidate a picture of what is required of the DBA position. In the paragraphs that follow, I end each paragraph with a question. Please take time to think about and answer the question before proceeding to the next paragraph.
Many people aspire to become a DBA for many reasons. One of the prime reasons is pay. DBA's are some of the highest paid professionals in the IT industry. Others aspire to become a DBA due to the glory that is often lauded on the DBA, or because it looks cool! I personally find being a DBA to be very rewarding. It is a fun, exciting career. What are your reasons for looking at the DBA position as a possible career choice?
Unless you are prepared for what lies ahead, you may find that a job as a DBA can be full of frustration and headaches. A database sits between the operating system and the end user application. As such, the DBA must be well versed in the OS platform their database runs on. The DBA doesn't necessarily need to know everything about the OS, but the more he or she knows, the better. The database interacts very closely with the OS. Understanding this interaction is essential. The DBA also needs to know about server hardware and how it impacts or helps the database. The DBA must also understand software applications. The DBA may be asked to help developers create sound, robust database applications. And above all us, and most obviously, the DBA must thoroughly understand the database engine, how it works, how all pieces of the engine fit together, and how to leverage the power of the database engine to deliver data to the end user and the application. The best DBAs I've seen in the industry have a very solid understanding of more than just the database itself. They know a thing or two about System Administration and Application Development. Many times, they come from one or both backgrounds before becoming a DBA. No matter what, there is a lot of ground to cover to become an effective, if not excellent DBA. Are you ready to start learning until you feel that you can't learn anymore?
Most of the people that I talk to who have difficulties starting out in their DBA career, really have an issue trying to absorb the mountainous volumes of information that a DBA needs to know. After all, System Administrators make a whole career out of learning the ins and outs of the OS. Application Developers make a whole career out of learning how to build and code excellent applications. Not only does a DBA have to know a great deal about these two different jobs, but then the DBA needs to spend even more time working on understanding the architecture of the database, and understanding how every piece of everything fits together! Does it sound too daunting of a task? There have been many who think so and after becoming frustrated, have left their DBA job for a completely different job. Then there are those individuals who thrive on disseminating and understanding all of this information, and using that information to make good, sound technical decisions. As I was fond of saying in my early days as a DBA, it all seems to me to be one great puzzle. The challenge is in getting all of the pieces to fit. Which type of person are you?
Many DBAs are "on-call". They get called at all hours of the day and night to resolve critical problems with their database. The database is the life-blood of the business's IT infrastructure. Without data, there would be no need to have a computer system. It is the data that drives the business. Where would amazon.com be if their web site couldn't search the database for products and if no one could place an order for their products? They wouldn't be in business for very long. There are many companies that lose significant revenues when their database is down, even for the shortest period of time. For this reason, the DBA needs to be available to resolve issues as fast as possible, should they occur. Many shops have a team of DBAs who rotate being on-call. These DBAs support databases for 24x7 applications. Are you ready to be placed on-call if the job requires it?
Some of the DBAs duties include applying patches to software or making database changes. Often times, these changes cannot be done while the company's employees are at work, expecting that the database be up and running so that they can get their jobs done. This means that the DBA frequently has to come in real early in the morning, or real late at night, or even on the weekends to perform work that can only be done outside of normal business hours. Are you ready to work some strange hours at times, or are you looking for a 9 to 5 job?
One key asset for a DBA to hold is what is commonly referred to as "soft skills". The DBA needs to be able to work well in a team environment, commonly in diverse teams with System Administrators, Network Administrators, Application Developers, Project Managers and others. DBAs need to be able to explain difficult, technical concepts in plain English that others in the team environment can understand. DBAs need to be able to direct team members on database-related issues. How are your soft skills?
While not an all-inclusive list, typical DBAs perform the following duties:
- Monitor database instances on a daily basis to ensure availability. Resolve unavailability issues.
- Collect system statistics and performance data for trending and configuration analysis.
- Configure and tune dB instances for optimal performance under application specific guidelines.
- Analyze and administer dB security. Control and monitor user access to dB. Audit database usage when necessary.
- Monitor backup procedures. Provide recovery when needed. Develop and test backup and recovery procedures.
- Upgrade RDBMS software and apply patches when needed. Upgrade or migrate database instances as necessary.
- Support application developers with any and all dB related activities.
- Keep up with dB trends & technologies. Use new technologies when applicable. Install, test, and evaluate new Oracle related products.
- Perform storage and physical design. Balance design issues to achieve optimal performance.
- Create, configure and design new dB instances.
- Diagnose, troubleshoot and resolve any dB related problems. Work with Oracle Support if necessary to bring problems to a successful resolution.
- Ensure Oracle networking software (SQL*Net, Net8, Names, OiD) is configured and running properly.
- Work with System Administrators (Unix & NT) to ensure Oracle related matters are handled properly.
- Create any necessary scripts for effective and occasionally periodic dB maintenance activities.
Each of the questions in the above paragraphs are designed to get you thinking about some of what a DBA has to deal with, to help you decide if this is the career for you. I do not mean any of this to stop you from becoming a DBA if that is your goal. I am just trying to inject some reality into the picture. I've seen a few DBAs become frustrated once the reality of the job hits them. And they've spent time, effort, and sometimes money, to obtain their first job as a DBA. Personally, I find this career to be very rewarding. And I can't imagine doing anything else right now. So hopefully, this section has helped you decide if this is something that you wish to pursue. If it is, then go for it with all you have!
How Do I Get That First DBA Job?
So you've read the section above and decided that becoming a DBA is a good career move for you. Congratulations! I hope that your career turns out to be as exciting and rewarding as you want it to be. So how do you go about getting that first DBA job? I hear people ask this question, time and time again.
During the early 1990's, the Internet was booming. Internet startup companies sprouted like weeds. Existing companies jumped on the bandwagon as well and started creating their own web presence. And almost every single one of these companies had a web site that required a database as a backend to their web application. Unfortunately, there weren't that many DBAs in the field at that time. There became a great shortage of DBAs in the IT industry. During that time, it seemed that all you needed to land a DBA job was the ability to spell "Oracle" or maybe just one semester's exposure to a database system in college. And to make life even better, the shortage of DBAs in the field prompted companies to throw very nice salary offers at potential candidates. If you wanted to become a DBA, it was easy; too easy. All you had to do was demonstrate that you knew what a database was and job offers came in faster than you could handle.
Then the Internet bubble burst. Tons of Internet startup companies went out of business. A lot of DBAs who worked for the Internet startups found themselves looking for jobs. A company with a DBA opening could find a candidate with DBA experience much more easily than before. Life hasn't been any easier in the early part of the 21st century (at least in the United States) now that the economy isn't very strong. Companies are tightening their budgets. All of this translates into less opportunities and job openings for the DBA candidate.
One of the hardest parts to landing that first DBA job is that every position opening requires some experience. If you look at it from the company's perspective, you can understand why experience is a must for the DBA position. Would you pay someone a high salary, to operate, maintain, and run one of the biggest, most important pieces of your IT infrastructure if they didn't have any experience? Could your company afford to struggle with an inexperienced DBA and potentially lose millions of dollars in revenue while you wait for this DBA to get past their learning curve? For most companies, the answer to these questions is a resounding ‘NO'. So without experience, it becomes rather difficult to obtain your first DBA job.
The first DBA job now becomes a "Catch 22" situation. How do I get a job as a DBA if I don't have any experience? How can I get experience as a DBA if I don't have a job? This is the hardest obstacle to overcome. The hardest part will be landing that first DBA job. Hopefully, the rest of this section will give you some ideas towards realizing the goal of your first DBA position.
Tip #1: Become educated. – Learn as much as you can you can about a database. This will most likely involve some time and effort on your part, outside of normal working hours. Take a database class at a local college or university. Many training companies offer classes on Database Administration. You may find that you have to pay for these yourself if your employer will not fund your education opportunities. Many DBA positions require at least a Bachelor's degree in Computer Science or a related field, so you should have at least that credential.
Tip #2: Practice being a DBA. – Many database vendors let you download trial, test, or evaluation copies of their database system. Download a copy and install the software on your own personal computer. Play with the database. Intentionally break the database and try to fix it. Try to perform as many of the DBA functions as you can think of. Test out and hone your skills on your own test platform so that you can be able to demonstrate some level of database administration ability.
Tip #3: Get certified – Many database vendors now offer a certification for their database product. Many companies now look at certification as a measuring stick. One thing to keep in mind is that just being certified is not enough. Passing DBA certification tests do not automatically mean that you know how to administer a database. They just say to the potential employer that you now possess a certain set of skills. Being certified also tells a potential employer that you are serious about your pursuit of a DBA job. I've seen many people complain that they are certified with no experience, but still can't get that first DBA job. Certification alone won't land you the job, but it doesn't hurt either. If nothing else, you've learned a great deal while trying to get certified. Just don't rely on the certification to get you that job you are looking for. You will need more than that. But it will help in the end.
Tip #4: Leverage your existing skill set – Many DBAs come from a System Administrator background. Others come from an Application Development background. If possible, see if you can use your existing skill set to get a job. The goal here is to make it a win-win situation for you and your employer. For instance, let's assume that you are already a SysAdmin looking to break into the DBA field. Maybe you can find a job at a company that will be able to use your SysAdmin skills part of the time, while being able to get your feet wet in Database Administration the rest of the time. If you are already a DBA on one vendor's platform but wish to move to another vendor's platform, see if you can land a job which has both platforms. For instance, use your SQL Server DBA skills in a shop that also lets you backup the Oracle DBA. In this way, both the company and you get what you want. After you've had exposure to DBA work, you can try to get a position that will let you do it full time, maybe even with the same company.
Tip #5: Take advantage of current opportunities – Sometimes, one gets into the DBA field just by being in the right place at the right time. If your current employer has an opportunity for you to work on any database project, jump at the chance! Any database experience is worth more than no database experience. Let your management know that you are actively seeking any database opportunities that come by. Hopefully, they will think of you when the next one comes along. After working on these database projects and seeing the desire in your eyes to become a DBA, they may decide to train you, and promote you. Many, many people get their first DBA job in exactly this manner, sliding into a Junior DBA position once they have worked on a few database-related projects. Often times, when a DBA leaves the company, that company will look at hiring an internal candidate if they feel that candidate is trainable.
Tip #6: Look for that Junior DBA position – If you look at DBA position opening descriptions, some will say that they are looking for a Senior DBA and others, just for a Junior DBA. So let's be serious here. You don' t have the experience for a senior-level position. And we've already discussed why companies won't consider you for such a position. But they may consider you for a junior-level position. Junior DBAs work under the guidance of a Senior DBA. They are learning the ropes. Typically, the Senior DBA assumes the responsibility for the databases, while getting all the glory too! But don't worry. As your career grows, you will get more and more responsibilities and more and more credit when appropriate. Since you don't have any experience, start your climb up the ladder here.
That being said, I have heard of some companies looking for a Senior DBA, but in the end, they really want to hire a Junior DBA. You may wish to apply for these positions even though you may not be qualified. They just might decide to hire you anyway. But be upfront and express that you are still learning the ropes and are really only Junior DBA material. Don't try to snow them into thinking that you are Senior DBA material. That will only hurt your chances of landing the job.
While no guarantee, these tips can help you land that first DBA job. Good luck and happy job-hunting! After you've received that first job as a DBA, proceed to the next section to learn where to go next.
I Just Got My First Job! Now What?
Congratulations! You are now an official member of the DBA club! Are you ready for that exciting career that you've always dreamed about? Your job has just begun and already you are way behind that learning curve. You will find that there is an enormous amount of material that you must learn to become an effect Database Administrator. Your first year or two will be spent learning more than you may have ever learned in your career. If you find that the amount of information is leading to brain overload, just sit back, take a breather, and come back to it. To help you along the way, you can follow the roadmap below:
Route #1 : Relational database theory – For this paper, I'm going to assume that the type of database you will be administering is a "relational" database. Other database models do exist, but the relational model is the dominant one in the industry for the last twenty years. If your database system follows a different model, then learn that theory. Relational database theory is very important. It is the background upon which everything has been built. I've seen many people who make the jump to database administration and never bother to learn solid relational database theory. Inevitably, their lack of a solid basis in this theory shows up as a shortcoming many times during their career. If you understand relational database theory well, then you will be able to make smoother transitions to any vendor's Relational Database Management System (RDBMS). It doesn't matter if I am using Oracle's database, or IBM's DB2, or Microsoft's SQL Server. All of them are relational database systems. They all do basically the same things. The difference lies in how they do the same things. A solid relational database theory is not essential for a Junior DBA position. But it is vital if you ever want to grow your career past the Junior DBA level. Many college-level textbooks cover relational database theory very well. One of the most widely used textbooks is Fundamentals of Database Systems by Elmasri and Navathe on Bejamin/Cummings Press.
Route #2 : Learn the query language inside and out – Databases all have a language that lets you get data from the database, put data into the database, and modify the data that is in the database. For relational databases, that language is Structured Query Language (SQL). This one language is your tool to interface with the database. It is vital that this tool not be a barrier to further learning. In your test database, practice various SQL statements until they become second nature to you. A great book on this subject is Oracle 9i The Complete Reference by Loney and Koch on Oracle Press. Every Oracle DBA should read this book early in their career. The Oracle 9i SQL Reference manual is another great source of information. You can access all of the Oracle documentation online at their TechNet (http://technet.oracle.com) web site. You will have to register for an account, but it is free. Every Oracle DBA should have an account on TechNet.
Route #3 : Begin learning basic database administration functions – Isn't this why you are here in the first place? So why is it third on the list? We are trying to build a pyramid of knowledge and I feel strongly that one needs to know relational database theory and SQL real well as they will become tools that you will use as you learn how to perform basic database administration functions. These functions can include starting and stopping a database, backing up and recovering a database, and creating/dropping/altering database objects. For Oracle database administration, there is a great book on the market that gives you a good taste of what to expect. This book is Oracle 9i DBA Handbook by Loney on Oracle Press. Most DBAs that I know have read this book more than once, early in their careers. At this time, you should also be reading and understanding the Oracle 9i Concepts Guide, the Oracle 9i Administrator's Guide, and the Oracle 9i Backup and Recovery Guide, all from the Oracle documentation.
Route #4 : Read, read, and read – Since you just started your career as a DBA, you are just beginning to build a skill set. It takes a long time to build, absorb, and comprehend all of the information you will be learning. Undoubtedly, your Senior DBA will have work to do, so he or she will not always be able to devote a ton of time to your studies. You will have to learn many things on your own. This is where reading comes in. There are many books on the market, which answer a lot of database related topics. Oracle Press is Oracle Corp's official publishing company with a large number of Oracle-related books. There are other publishing companies as well, like Wrox Press and O'Reilly Press. You also have the Oracle documentation to read. And there are numerous web sites and newsgroups available as well. Read as much as you can get your hands on. And it's not a bad idea to read these items more than once to absorb things you may have missed the first time.
Route #5 : Create test cases – I often see beginner questions that ask the most basic questions that can easily be answered if the person just took the time to figure it out themselves. Undoubtedly, you will have many questions as you begin your Oracle studies. Decide if these are questions that you can answer yourself. For instance, I once had someone ask me if it was possible to insert NULL values into a column with a UNIQUE constraint. At first, this may not seem to be an easy question to answer. But it is really easy to test! Just create a simple table. On one of your columns, enable a UNIQUE constraint. Try to insert NULL values into that column. Does it work? You should be able to answer this question quite easily. So why create these test cases? One reason is that by doing so, you will be enhancing your problem solving skills. The same skills required to create these test cases are some of the same skills used in problem solving. Problem solving skills will greatly help your DBA career. Another reason is that you will often need to create more complex test cases as your career progresses in order to guarantee database and application success. Even simple test cases are building blocks for more complex database and application analysis in the future.
Route #6 : Find a mentor – A mentor can be used to guide, or steer your DBA career (or any career for that matter). They can give pointers, answer questions, and help save some time as you grow your DBA career. Hopefully, this paper will serve as a mentor towards part of growing your career. If you are working in an environment with a Senior DBA, then that person should be responsible for mentoring a good portion of your career. You may choose to look at other mentors as well.
Route #7 : Participate in local user groups – Many cities across the nation have local user groups which meet periodically to talk about database-related topics. Join one of these local user groups if possible. This gives you a great way to interact and network with others in your field.
How Do I Go From a Beginner DBA to an Intermediate DBA?
So you've been a DBA for a while and you now wish to take your skills up a notch? Where do you turn to next? First, go back to the previous section and make sure that you have completed all of the routes. It is vital that you know the SQL language inside and out. It is vital that you know relational database theory and that you understand the basic database administration tasks. And by now, you should have been reading the documentation and other texts until you are blue in the face. If not, then you are not ready to proceed down the next road, to increasing your skills as a DBA. If you are ready to proceed, then I've got a few routes for you to take to increase your skill set.
Route #1 : Learn the OS and your server hardware – As I said before, the database sits on top of the operating system and the server hardware. It is essential that you understand how these pieces work. You should understand how to interact with the particular OS. How do you remove or edit files? If your OS is Unix, you should have a grasp of the command line and how Unix commands help you do your job. The same is to be said if you are running Windows or any other OS. You need to have an understanding of server hardware as well. What is the difference between physical and virtual memory? What is RAID and how do the different levels affect things? Why do databases like more physical disks, rather than one large disk volume? You need to know these things so that you can intelligently talk to your System Administrators on how to best configure your server to sufficiently support your database.
Route #2 : Learn application design as it relates to databases – As I said before, the database sits between the OS and the database application. You really need to know both ends. How does the SQL language help create good applications? What are bind variables and why are they important? Tom Kyte has written an excellent book that gives great advice on Oracle application design. His Expert One-on-one Oracle book can be found on Wrox Press. I highly suggest reading his book. He talks at length about the things that can make or break an Oracle application. You need to know these things because your application developers are looking to you for guidance and database knowledge. Learn anything you can about application design. It may be beneficial to take a college class in software engineering, operating systems, or data structures.
Route #3 : Learn the Oracle architecture – It is important that you fully understand how Oracle works. Without an intimate knowledge of the Oracle architecture, you will not be able to do much work as a Senior DBA. It is this knowledge that is the basis for fixing a broken database. You need to understand how all of the pieces work together.
Route #4 : Become certified – It may not be required of your job, but becoming certified will definitely help you. Every day as a DBA, you have been learning new and exciting things. Maybe at this point in your career, you've even had a couple of days where you haven't learned anything new. But you still have a lot to learn. Becoming an Oracle Certified Professional DBA requires you to ensure that you have learned the basics about all areas of database administration. I found that in the course of studying for the OCP exams, I learned areas that my job never would have exposed me to. And once I learned about a particular topic that I had never seen before, I was able to use that knowledge at a later date to solve a problem. If I didn't study for the OCP exams, I never would have known about that particular solution to the problem. This has happened to me time and time again. Some people may say that certification really isn't worth it. I say that it doesn't hurt you and it only helps you. So get certified!
Route #5 : Develop a library of resources – In the previous section, I indicated that every DBA should have an account on Technet. This is one of your main resources. But there are many more sources as well. Many people share their Oracle knowledge. If you haven't started it already, you should be developing quite a bookmark collection in your web browser of Oracle resources. You can start by visiting my site (http://www.peasland.net) if you want. The following is a list of must have web sites for every Oracle DBA:
There are many other very good web sites as well.
Route #6 : Begin interacting with various newsgroups and forums – You may have already stumbled on them, but if you haven't now is the time to start. There are many newsgroups and forums out there designed to answer any Oracle questions that you have. There are many wonderful people out there in the Oracle community willing to share their information with you. All you have to do is ask. The following is a nice list to Internet communities to begin interaction with:
-
Usenet newsgroups – comp.databases.oracle.server and comp.databases.oracle.misc are two great Usenet newsgroups to interact with. They have some of the highest volumes of traffic devoted to Oracle questions. The best way to view these groups is to use a newsreader. But if you want web-based access, you can use Google (http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&group=comp.databases.oracle)
-
Quest Pipelines – These were originally called the RevealNet Pipelines when software vendor RevealNet owned them. Software vendor Quest purchased RevealNet and now owns the Pipelines. These are some of my favorites since the Pipelines are moderated. You can find the Pipelines here (http://www.quest-pipelines.com/index.asp).
It is a good idea to see how other people are experiencing the trials and tribulations that you are. If you have questions, feel free to make a posting to the groups. If you do make a posting, always include information such as your Oracle version and the platform that you run Oracle on. These can make a big difference in the answer you will receive. If you forget, someone will remind you! Even if you don't ask questions, you will probably learn a lot just by reading others answers. I can't tell you the number of times I've been able to solve a problem because I remembered someone else asking the about the same issue on a newsgroup.
How Do I Go From an Intermediate to a Senior DBA?
So you've been plugging away as a DBA for quite some time now. You feel that you are ready to take the next step. What do you need to learn to become a Senior DBA? The following roadmap can help you along the way.
Route #1 : Read all of the documentation – The Oracle documentation is not always the easiest thing to read. Many times, you bounce from document to document just to make sense out of the whole thing. If the documentation were the best thing around, then there wouldn't be a market for all of those Oracle books that you've got sitting on your bookshelf. But the documentation does contain information that is not found anywhere else. For instance, nowhere else will you find details of every single INIT.ORA parameter or V$ view. Books may make reference to a few of them, but the Oracle docs talk about all of them. I have yet to meet a very good Senior DBA who has not read the Oracle docs from top to bottom. This isn't a coincidence. The Oracle docs are a must read. And when a new Oracle version hits the market, you will have to reread the docs again. You may have read the Oracle Concepts Guide twelve times by now. But when Oracle 10i is released, you will have to read it again. Any new concepts for the 10i release will be noted in the docs. If you truly want to get to the next level, read the docs. There is no escaping it.
Route #2 : Become an expert – The Oracle database is a very complex beast. To get to the next level, you will need to master many components of the product. Start with backup and recovery. Become a backup and recovery expert. You do this by intentionally breaking the database and seeing how to recover it. Try to break the database in every possible way and see if recovery is possible. You will soon be able to know backup and recovery principles inside and out. After you have become an expert in backup and recovery, become an expert in another area. You will have endless subjects from which to choose to master. Keep this process up for your entire career. But keep in mind, no matter how much of an expert you become in a certain area, someone, somewhere knows more than you do. Don't take this personally. Just try to learn as much as possible from that individual.
Route #3 : Actively participate in newsgroups, forums, and user groups – Previously, I mentioned how the various newsgroups and forums are a great place to learn new things. Now is the time for you to take the next step and answer any questions that you can. You'll be amazed at how much you learn in this process!
Route #4 : Write white papers and present them – This is similar to the route mentioned above. First, it is important to share the information that you have learned. If your career has made it this far, then it is mostly likely due, in some part, on the contributions of others. So now is your time to contribute to the next person. Second, an amazing thing happens when you attempt to share your information. That information undergoes an amazing process in your brain when you attempt to formulate it into a clear, concise topic that others can use. This process solidifies the information for you that is not done with other methods. So sharing that information in white papers, at conferences, and in newsgroups and forums is a great way to learn and take your abilities to the next level. Along the way, you have to do two things. One, recognize that you will make mistakes. Others will be happy to point out those mistakes, sometimes in a manner that is not very nice. Don't try to hide from your mistakes. Own up to them and learn from them. Two, learn to say that you don't know the answer instead of trying to bluff your way through it. People will know when you are trying to pull the proverbial wool over their eyes. Simply tell them that you are unsure of the answer at this time, and you will get back to them when you know the answer. If you keep these two points in mind, your integrity will be intact and you will grow as an IT professional.
Route #5 : Become an expert in Oracle troubleshooting – The Senior DBA is often the person who is looked towards to solve those complex Oracle issues. You will have to use all the skills at your disposal, which you have been building your entire career, to solve many of these issues. Everything I've mentioned above will be used to troubleshoot problems; documentation, books, newsgroups, test cases, and other DBAs will all become resources to assist you in solving problems.
Route #6 : Become an expert in performance tuning – The Senior DBA is often the person who is looked towards to tune database and application performance. If you are the Senior DBA and you cannot analyze performance bottlenecks, then your company will look elsewhere for these services.
Route #7 : Become an expert in capacity planning – The Senior DBA is often the person who is looked towards to plan for database capacity in terms of data growth and transaction growth. The Senior DBA needs to be able to spot capacity bottlenecks in the system before they severely impact application performance. For instance, the DBA should know that more disk space needs to be purchased long before the database runs out of available disk space. Not keeping an eye on capacity planning can lead to a downed production database.
Route #8 : Keep an eye on newer technologies – The Senior DBA should have a good idea what is going on in the IT community as it relates to database technologies. Are there technologies available now that can help the database? For instance, learn the advantages and disadvantages of Storage Area Networks and how they apply to database system. Are there technologies that will be available in the near future, which can help us? For instance, at the time of writing this paper, Linux operating systems are becoming more and more popular. What does Linux have to offer you for your database OS platform? Will it work for your organization?
Conclusion
I hope that this paper has given you ideas on how to go through all the stages of your career, from landing the first job, to progressing from Junior DBA up to Senior DBA. Use this paper no matter which stage you are currently sitting at as your progress and grow your DBA career.