好用的Oracle DBA為什麼這麼難找?
這不但是很多CIO的痛,也是很多IT主管攪盡腦汁也解決不了的問題。可那麼多從ORACLE培訓班拿到OCP認證的人跑哪裡去了呢?
小白是一個擁有OCP證照,且對資料庫本身的架構、運作原理有一定瞭解的資料庫管理員。原以為一切都沒問題的,無奈小白剛一就任,就面臨到替換公司資料庫系統主機的問題。小白沒有程式開發與主機系統管理等經驗,小白是那種一畢業就去考OCP的證照,接著做Oracle DBA的人,因此,一就任就面臨到不少挑戰。
資料庫系統在小白接手後,一直有一堆怪怪的問題發生。
問題在那?沒有主機系統維護經驗的小白雖然知道資料庫系統本身的運作並不夠順暢,但卻一直找不到問題的癥結點,時間一久,他便成了大家“攻擊”的對象。而且情況愈來愈嚴重。一開始,大夥只有在資料庫出問題時,才會去找小白;到後來,只要一發生問題,不論那個問題跟資料庫是否有明顯的關連,大夥的第一個動作就是,把問題推到資料庫或小白身上。
該狀況讓小白的工作愈來愈難做。理由是,小白既不懂管理主機系統,也不會撰寫程式,當大家都槍口一致的說“一切都是是小白的責任”時,完全搞不懂狀況的他,也只能摸摸鼻子,把這黑到發亮的鍋子背下來。他苦撐了一年後離去,至今他仍不敢跟別人說他有OCP的證照。
小白那屆培訓班共有25個學員,當初隨班考取OCP認證的大約有15人,在幾年職場洗滌後,現在大概只剩下6個人從事與Oracle DBA相關的工作。這6個人中,有三個人是以主管的身份“兼作”Oracle DBA。Oracle DBA在IT職場的陣亡率很高。主要的問題在於,造成Oracle資料庫發生問題的原因,經常不單只從資料庫而來。
列如 小白估計遇到問題其實單純只因資料庫而導致的問題並不多,有一大半的問題是因為系統主機等硬體過於老舊而造成的問題,另外三分之一的問題則來自於程式撰寫,如SQL文法撰寫習慣不好等。
以SQL文法撰寫習慣不好來說,當資料庫的Loading還很輕的時候,這些有問題的SQL文法並不會對資料庫或系統造成太大的影響,但是當資料庫的資料成長急遽或主機負載將滿時,上述的SQL文法,就像是一鍋粥中的老鼠屎,會直接影響到整個資料庫系統的運作效能。
只不過,教育培訓中心提供的Oracle資料庫課程,並沒有教導Oracle資料庫系統以外的知識,因此,非資料庫本身所造成的營運問題,初任DBA一職的新人多沒有能力掌控。
所以,當一個企業說他們找不到稱職的或好用的Oracle DBA時,他們可能不是在說找不到“懂”資料庫的人,其實考得到OCP認證,我想對資料庫或多或少都有一定程度的瞭解,他們應該是指:他們找不到人可以用全觀的角度,來解析、處理與解決導致資料庫無法正常營運的原因。
企業如何選擇一個對的Oracle DBA呢?
大部份的企業對Oracle DBA的需求,一開始多半是以鑑效組資料庫的正常運作以及協助資料庫進行資料備份等工作為主,因此,找有大型主機系統管理經驗,有儲存管理經驗者尤佳,或者瞭解作業系統原理與運作的人來做。因為,Oracle 資料庫運作的不正常,經常是因為系統出狀況,找具有系統管理經驗的人員做DBA,在一定程度上應該已經能比“只”懂資料庫的資訊人員,還會比較快得找到問題。此外,也比較能避免資料庫出現宕機等狀況。
其次,有的企業在找Oracle DBA的時候,希望找那種瞭解資料處理流程的人,以便大大翻整一下既有資料庫內的資料,以及最佳化資料傳遞與分析。例如寫一些store Function、triger、建DB_link等工作。在這種狀況下找有程式開發經驗的人,特別是對資料庫存取上有實際程式開發經驗的人,他們除對資料與資料結構的本身有一定的敏感度,也比較熟悉客戶的需求,知道該如何翻整資料庫。
要特別注意的是,魚與熊掌不可兼得,同時兼俱系統管理與程式開發等兩種技術能力的人少之又少,因此,在進行DBA的招募前,建議企業先想好自己要的是哪一種人才。不過,不論你找的是那一種Oracle DBA,我都不太建議找一個只有OCP認證但無其它工作經驗的人來做DBA。因為這意味著,企業要落實資料庫管理的陣痛期可能會拉得很長,而且陣痛的過程中DBA也很是辛苦。
那麼做為要走Oracle DBA 的人該如何走呢?
通過上面的瞭解大家心裡該有明晰了吧
1 首先要對ORACLE 資料庫深厚瞭解,運行機制和原理,備份恢複,效能調整和安全審計
2 對作業系統要知道 Linux,Windows 2003 Data Center 知道配置,監控,日誌
3 對預存程序有所瞭解 PL/SQL T-SQL MySQL 文法和對應的預存程序,觸發器,視圖,複製發布能夠看得明白,能轉換為ORACLE的PL-SQL
4 存放裝置 RAID 磁碟櫃,磁帶機
5 對應用伺服器有必要瞭解 Weblogic TomCate Apache IIS6.0 知道配置,效能和日誌
6 對JAVA ,ASP,C# 開放語言和J2EE,NETWORK2.0 有所瞭解 知道文法和運行原理
7 英語 英語起碼能看和寫,雖然實際工作中運用得很少很少