數(shù)據(jù)庫管理員
目錄
1.什么是數(shù)據(jù)庫管理員[1]
數(shù)據(jù)庫管理員是指全面負責數(shù)據(jù)庫系統(tǒng)的日常管理、維護和運行的人員。DBA處于終端用戶與應用程序員之間,是數(shù)據(jù)庫系統(tǒng)能否正常運轉(zhuǎn)的關鍵,大型數(shù)據(jù)庫系統(tǒng)需要設置專門的管理辦公室。其職責是監(jiān)督控制數(shù)據(jù)庫的使用和運行,實施數(shù)據(jù)庫系統(tǒng)的維護、改進和重組,開展信息社會化服務。
對于不同規(guī)模的數(shù)據(jù)庫系統(tǒng),用戶的人員配置是不相同的。只有大型數(shù)據(jù)庫系統(tǒng)才配備有應用程序員和數(shù)據(jù)庫管理員。應用型微機數(shù)據(jù)庫系統(tǒng)比較簡單,其用戶通常兼有終端用戶和數(shù)據(jù)庫管理員的職能,但必要時也應當兼有應用程序員的能力。
2.數(shù)據(jù)庫管理員的類型[2]
以下就功能面劃分出數(shù)據(jù)庫管理員的類型,但以現(xiàn)實面來看,有可能是一個數(shù)據(jù)庫管理員囊括所有項目,也有可能是多個數(shù)據(jù)庫管理員共同分擔一個項目,或是交叉負責等。
- 操作數(shù)據(jù)庫管理員(OperationDatabaseAdministrator):其職責是監(jiān)控和維護所有數(shù)據(jù)庫及服務器的可用性,并對數(shù)據(jù)庫做結構上的改變。例如,新增使用者、調(diào)整表空間、新增表格及索引,以及SQLStatement性能調(diào)教等屬于例行性的事務。
- 應用程序數(shù)據(jù)庫管理員(Application Database Administrator):應用程序數(shù)據(jù)庫管理員也稱為數(shù)據(jù)管理數(shù)據(jù)庫管理員(Data Manage Database Administrator),無論如何稱呼,主要工作內(nèi)容是介于操作數(shù)據(jù)庫管理與作為程序開發(fā)人員之間的橋梁,必須對于數(shù)據(jù)的流向相當清楚明了,對于系統(tǒng)的實體關系模型圖(Entity Relationship Model,ERModel)要有很好的掌握度,并能夠提供程序開發(fā)人員準確的數(shù)據(jù)整合,同時應用程序數(shù)據(jù)庫管理員也需具備編寫數(shù)據(jù)庫程序的能力,如PL/SQL,以提供基礎的數(shù)據(jù)流的轉(zhuǎn)換給程序開發(fā)人員使用。
- 解決方案數(shù)據(jù)庫管理員(Solution Database Administrator):其職責是規(guī)劃最佳數(shù)據(jù)庫解決方案,以確保整個系統(tǒng)最大的效益。例如,規(guī)劃數(shù)據(jù)庫的聯(lián)機方式、數(shù)據(jù)文件在存儲媒體要如何擺放、數(shù)據(jù)庫的備援模式、是否需要同步復制數(shù)據(jù)到另一個數(shù)據(jù)庫,以分擔數(shù)據(jù)庫的負荷等。
3.數(shù)據(jù)庫管理員的定位[2]
以下就資歷深淺及工作定位劃分出數(shù)據(jù)庫管理員的3種定位。
- 初級數(shù)據(jù)庫管理員:初級數(shù)據(jù)庫管理員只具備部分經(jīng)驗或根本沒有數(shù)據(jù)庫管理經(jīng)驗,主要工作性質(zhì)是負責監(jiān)控數(shù)據(jù)庫及基本的數(shù)據(jù)庫維護。初級數(shù)據(jù)庫管理員的工作大致如下。
- 數(shù)據(jù)庫備份是否成功。
- 排序工作是否正常執(zhí)行。
- 數(shù)據(jù)庫及服務器空間是否足夠。
- 基本的數(shù)據(jù)庫問題排除。
- 檢查Oracle AlertLog是否有錯誤信息。
- 監(jiān)控數(shù)據(jù)庫聯(lián)機是否正常。
- 提供日報表、周報表及月報表。
- 資深數(shù)據(jù)庫管理員:通常是指具備多年數(shù)據(jù)庫管理經(jīng)驗的人,對整個數(shù)據(jù)庫甚至整個系統(tǒng)都相當?shù)厥煜ぃ瑫r對數(shù)據(jù)庫的各種操作及指令也相當純熟,其對于所接觸的層面必定較為寬廣,除了每天操作面的工作項目之外,還需負責資料庫環(huán)境的規(guī)劃與管理,同時必須了解及協(xié)助程序開發(fā)人員的需求。資深數(shù)據(jù)庫管理員的工作大致如下。
- 負責整個數(shù)據(jù)庫環(huán)境的正常運作。
- 建立數(shù)據(jù)庫管理規(guī)范及安全機制。
- 空間容量的規(guī)劃及預測未來的成長量。
- 與程序開發(fā)人員加強溝通,以提供適當?shù)膮f(xié)助。
- 安裝數(shù)據(jù)庫服務器及數(shù)據(jù)庫,或是建立標準安裝程序,提供資淺數(shù)據(jù)庫管理員進行安裝作業(yè)。
- 支持資淺數(shù)據(jù)庫管理員解決無法處理的問題。
- 根據(jù)資淺數(shù)據(jù)庫管理員整理的報表,發(fā)覺潛在的危機,并加以解決或預防,以增強數(shù)據(jù)庫的穩(wěn)定度。
- 管理及訓練資淺數(shù)據(jù)庫管理員。
- 頗問數(shù)據(jù)庫管理員:除了必須對數(shù)據(jù)庫要有深厚的知識外,其特別的價值來自于擁有與其他數(shù)據(jù)庫管理員不曾有過的經(jīng)驗與知識領域,而這些經(jīng)驗和知識對數(shù)據(jù)庫本身,以及相關的應用程序和環(huán)境架構來說,又是非常重要的。例如,數(shù)據(jù)庫的性能急速低下,不可預期或極端且急迫的問題,顧問數(shù)據(jù)庫管理員均能夠用一個結構化、程序性流程,快速診斷出問題的癥結,并同時提供解決方案,而這些都是經(jīng)驗及專業(yè)的積累。通常,顧問數(shù)據(jù)庫管理員都是歷練過上述各種類型的數(shù)據(jù)庫管理員。顧問數(shù)據(jù)庫管理員的工作大致如下。
- 利用自身積累的經(jīng)驗和專業(yè)知識,提供適當?shù)慕ㄗh與解決方案。
- 當問題發(fā)生時,能快速評估、歸納及排除障礙。
- 強而有力的溝通能力,在企業(yè)里顧問數(shù)據(jù)庫管理員必須在許多不同層次的人員之間進行溝通及了解。
- 編寫文件并記錄解決方案,同時協(xié)助建立知識庫,以便當相同問題再次發(fā)生時,能提供相關人員有所遵循的依據(jù),迅速排除障礙。
- 需要有異構數(shù)據(jù)庫及平臺的轉(zhuǎn)換經(jīng)驗。
- 時常接受及測試新知,以適應未來的需求。
以上是就數(shù)據(jù)庫管理員的類型及工作定位而劃分的定義,就實際面來看,這3種類型及3種定位往往是交互重迭的,如圖所示。
上圖顯示數(shù)據(jù)庫管理員的定位是按資歷由下而上排列的,對應到數(shù)據(jù)庫管理員的類型,越資深的數(shù)據(jù)庫管理員占規(guī)劃及解決方案的工作比例越重。因此,圖形以正三角與倒三角來顯示工作比重,而操作數(shù)據(jù)庫管理員與應用程序數(shù)據(jù)庫管理員之間由雙箭頭連接,代表這兩種類型的數(shù)據(jù)庫管理員的工作是互通有無、交互配合的,而對應到數(shù)據(jù)庫管理員的定位,資淺數(shù)據(jù)庫管理員在這兩種類型的工作中所占的比例較重。
4.數(shù)據(jù)庫管理員的工作內(nèi)容[2]
現(xiàn)今系統(tǒng)架構是大者恒大,盤根錯節(jié),因此,必須向上延伸及向下扎根,以現(xiàn)實狀況而言,數(shù)據(jù)庫管理員的工作內(nèi)容有可能被無限延伸或包山包海,受限于篇幅無法一一詳述,在此僅就數(shù)據(jù)庫管理員的核心工作內(nèi)容進行介紹。數(shù)據(jù)庫管理員核心工作內(nèi)容包括三大方向,其典型的工作內(nèi)容重點如下。
- 規(guī)劃與建設。
- 營運與維護。
- 故障排除與災后恢復。
- 1.規(guī)劃與建設
- 數(shù)據(jù)庫服務器環(huán)境架構評估與規(guī)劃:服務器環(huán)境架構的規(guī)劃與數(shù)據(jù)庫往后的運作是息息相關的,也就是說,當服務器環(huán)境架構先天不良時,將會增加日后數(shù)據(jù)庫性能的限制與維護上的種種困難。因此,數(shù)據(jù)庫管理員在整套系統(tǒng)規(guī)劃初期,就必須針對數(shù)據(jù)庫未來的成長需求、性能需求及商業(yè)考慮等方面,來決定數(shù)據(jù)庫運作上所需的內(nèi)存、硬盤、CPU及其他資源。例如,在硬件規(guī)劃時,必須考慮到如何使用RAID、數(shù)據(jù)文件(Data File)要如何放置,以及在線重作日志文件(Online RedoLog File)要如何放置等,這些都影響到未來數(shù)據(jù)庫運作的性能。
- 安裝及升級數(shù)據(jù)庫軟件:安裝及升級數(shù)據(jù)庫軟件是數(shù)據(jù)庫管理員最基本的工作之一,但這并不是代表只需要依照指示單擊“下一步”按鈕就可以完成的,因為Oracle是個非常強大且復雜的系統(tǒng),稍有不同的設定,可能牽一發(fā)而動全身,影響巨大而深遠。因此,在安裝Oracle軟件時務必了解不同選項所代表的意義,在升級Oracle軟件前,要確認是否會影響到操作系統(tǒng)及應用程序。
- 數(shù)據(jù)庫的創(chuàng)建與設置:當安裝完Oracle軟件之后,就要把數(shù)據(jù)庫創(chuàng)建起來。有些數(shù)據(jù)庫的參數(shù)是在創(chuàng)建的當F就必須決定的,日后是無法修改的,因此,創(chuàng)建數(shù)據(jù)庫需要考慮到應用程序的需求,以及操作系統(tǒng)的限制。
- 設計數(shù)據(jù)庫存儲方式:數(shù)據(jù)庫創(chuàng)建完成后,此系統(tǒng)便可開始運作,此時要考慮的是數(shù)據(jù)庫存儲方式,例如索引、數(shù)據(jù)、表格要如何擺放,需不需要建立Partition Table等議題,也就是說,必須確定Oracle的物理數(shù)據(jù)結構弓Oracle的邏輯結構要如何以最佳的方式呈現(xiàn)出來。
- 建立完善的備份計劃:數(shù)據(jù)庫管理備份與恢復是數(shù)據(jù)庫管理員最重要的職責之一,當數(shù)據(jù)庫損壞時,整個企業(yè)的運作將完全停止,各方的壓力及關愛的電話必定會接踵而來,等著數(shù)據(jù)庫管理員發(fā)揮神奇的魔力,將數(shù)據(jù)庫在第一時間恢復,而完善的備份計劃將能讓數(shù)據(jù)庫管理員擁有這股神奇的魔力,因此,規(guī)劃備份時必須考慮到系統(tǒng)的重要性及企業(yè)可承擔的風險。Oracle擁有數(shù)種不同的備份方式,可交互運用,相關內(nèi)容請參閱“第3篇Oracle數(shù)據(jù)庫的備份與恢復”。
- 建立數(shù)據(jù)庫安全性管理規(guī)范:這里所說的數(shù)據(jù)庫安全性管理規(guī)范是指將數(shù)據(jù)分門別類,將適當?shù)臄?shù)據(jù)提供給擁有適當權限者,例如,將對象擁有者(Schema Account)獨立出來,再依照不同的賬號需求賦予適當?shù)臋嘞蕖?
- 2.營運與維護
- 建立及維護數(shù)據(jù)庫使用者與所有對象:一旦新使用者必須存取數(shù)據(jù)庫,或當原有使用者有權限變更需求時,數(shù)據(jù)庫管理員就必須按照安全性管理規(guī)范,給予適當?shù)拇嫒嘞?。當使用者有新增、修改或刪除Oracle對象的需求時,數(shù)據(jù)庫管理員除了按照使用者的需求作異動之外,尚需給予適當?shù)臋嘞夼c存儲擺放方式。
- 檢查數(shù)據(jù)庫備份是否成功地執(zhí)行及確認備份的有效性:數(shù)據(jù)庫管理備份與回復是數(shù)據(jù)庫管理員最重要的職責之一,因此,當有了完善的備份計劃后,就必須監(jiān)控備份是否有按照時程且成功地執(zhí)行完成,單是監(jiān)控備份仍然不夠,還需要定期將備份拿出來作恢復測試,以確保備份的可用性。
- 控制和躲控使用者對數(shù)據(jù)庫的存取狀況與使用數(shù)據(jù)庫資源:使用Oracle對象Profile將使用者分成不同等級,依照等級的高低提供不同的數(shù)據(jù)庫資源,所謂的數(shù)據(jù)庫資源包括CPU使用量、內(nèi)存使用量、聯(lián)機時間等,而監(jiān)控使用者對數(shù)據(jù)庫的存取則利用PL/SQL里的Trigger或Procedure,當不正常地存取時,可實時發(fā)出警告。
- 監(jiān)控數(shù)據(jù)庫的性能、存儲狀況及可用性:數(shù)據(jù)庫管理員需時時監(jiān)控數(shù)據(jù)庫的性能、存儲狀況及可用性,套旬郭臺銘說過的一句話“魔鬼都在細節(jié)里”,在大多數(shù)情況下,數(shù)據(jù)庫在運作中斷前都會有一些細微的征兆,因此,當征兆出現(xiàn)時,若能及時分析及處理,就可以避免系統(tǒng)不必要的中斷及損失。
- 數(shù)據(jù)庫安全性的監(jiān)控:善用Oracle提供的LogonTrigger,確認或記錄使用者的身份,避免數(shù)據(jù)的竊取及確保企業(yè)的安全。
- 3.障礙排除與災后恢復
- 調(diào)整數(shù)據(jù)庫性能:數(shù)據(jù)庫的性能可用與否,最終都是由數(shù)據(jù)庫的執(zhí)行效率與穩(wěn)定性來判斷的,而數(shù)據(jù)庫性能問題經(jīng)常在設置初期無法一一地顯現(xiàn)出來,當運作了一段時間后,可能由于外在環(huán)境改變、使用者增加、數(shù)據(jù)累積快速、程序改寫,甚至硬件設備老舊等因素,都會讓數(shù)據(jù)庫顯露出疲態(tài),此時,數(shù)據(jù)庫的性能調(diào)校對數(shù)據(jù)庫管理員就顯而亦重。
- 災后恢復:數(shù)據(jù)庫災后恢復的定義其實是很,一泛的,小到使用者不當修改或刪除數(shù)據(jù),大到硬件損壞、天然災害或其他不可預期的災難造成數(shù)據(jù)庫無法正常運作等,數(shù)據(jù)庫管理員有責任在最短的時間內(nèi)將數(shù)據(jù)庫從各種不同損壞的狀況中復原,這是非常重要的,這也是為什么我們一再強調(diào)規(guī)劃備份、監(jiān)控備份及定期測試備份的重要性。所謂養(yǎng)兵千口,用在一時,此刻就是顯示數(shù)據(jù)庫管理員平日努力的價值所在。
5.數(shù)據(jù)庫管理員應該具備的認知與特性[2]
以上所講的都是針對數(shù)據(jù)庫管理員應具備的專業(yè)技能,作為一個數(shù)據(jù)庫管理員,除了堅實的數(shù)據(jù)庫管理技術技能外,還必須具備下列的認知與特性。
- 1.數(shù)據(jù)庫管理員應具備的認知
- 24小時待命,手機無法關機:大部分的數(shù)據(jù)庫都是24小時營運的,但數(shù)據(jù)庫出現(xiàn)問題并不會特別選擇在白天上班時,因此,大部分的數(shù)據(jù)庫管理員必須要隨時待命,以解決突發(fā)狀況。
- 非朝九晚五的工作:數(shù)據(jù)庫管理員常常需要針對數(shù)據(jù)庫執(zhí)行維護、版本升級或是支持系統(tǒng)升級等數(shù)據(jù)庫必須暫停才能執(zhí)行的任務,通常這些任務必須選擇在對企業(yè)營運傷害性最Jl,fl勺時段來進行,往往是在深夜、清晨或假日。
- 十年寒窗無人問,一舉成名天下知:數(shù)據(jù)庫管理員的工作價值實在是可用“十年寒窗無人問,一舉成名天下知”來形容。當系統(tǒng)作業(yè)及性能都不錯時,沒有人會注意到數(shù)據(jù)庫管理員平H花了多少精神與心力呵護數(shù)據(jù)庫,一旦有問題發(fā)生造成營運停止,則數(shù)據(jù)庫管理員的一舉一動馬上就會成為眾人的焦點。
- 一心多用:一個企業(yè)信息部門里可能有上百位程序設計師,但數(shù)據(jù)庫管理員卻屈指可數(shù),因此,一位數(shù)據(jù)庫管理員通常會負責數(shù)套系統(tǒng)的數(shù)據(jù)庫,但總有川流不息的程序設計師向數(shù)據(jù)庫管理員尋求問題的解決方案,數(shù)據(jù)庫管理員常需要中斷手邊的工作,給予適當?shù)膮f(xié)助。
- 自動自發(fā)及注意細節(jié):自動自發(fā)對每個人都是很重要的,對數(shù)據(jù)庫管理員尤其如此。數(shù)據(jù)庫管理員要能想辦法促使問題出現(xiàn),而不是等待問題出現(xiàn),但這樣還不夠,在大多數(shù)情況下,數(shù)據(jù)庫運作中斷前都會有一些細微的征兆,不要放過任何可疑的問題、解決及了解發(fā)生原因,做到預防勝于治療。
- 2.數(shù)據(jù)庫管理員應具備的特性
- 堅強的抗壓力性:數(shù)據(jù)庫管理員常常是解決問題的最后一道防線,當發(fā)生問題造成運作停止時,最常看到的景象就是數(shù)據(jù)庫管理員一邊講著電話,一邊雙手飛快地下著指令,旁邊站著數(shù)個不斷徘徊及等待的人。這意味著數(shù)據(jù)庫管理員最重要、最關鍵的工作往往是在數(shù)據(jù)庫出現(xiàn)問題時,數(shù)據(jù)庫管理員必須在眾人的焦點下解決問題,承受巨大的精神壓力,因此,抗壓性對數(shù)據(jù)庫管理員來說非常重要。
- 自信心:數(shù)據(jù)庫管理員常常需要做出大大小小不同的決定,自信心非常重要,而自信心的培養(yǎng)是從平日的維護工作、專業(yè)知識及對系統(tǒng)的了解程度所積累起來的。
- 強韌的意志力與耐心:數(shù)據(jù)庫管理員有時會碰到棘手的問題,而這些問題的形成常常是由多方面的原因造成的,因此,要了解這些問題需要長時間的監(jiān)控,進而解決。
- 永無止境的學習心:幾乎所有的數(shù)據(jù)庫都在不停地更新,每隔一段時間就有新的版本和功能出來,而求知欲強的數(shù)據(jù)庫管理員將會進行安裝及測試最新版本的數(shù)據(jù)庫,并立即開始尋找功能和性能上的差異,從而改進系統(tǒng)性能,甚至幫企業(yè)取得最大利益。對于一位優(yōu)秀的數(shù)據(jù)庫管理員來說,學習心是必需的。
- 待人圓融,處世堅定:數(shù)據(jù)庫管理員的角色像是一座橋梁,橋梁的一端是程序開發(fā)人員,另一端是硬件工程師。很多時候,程序開發(fā)人員、系統(tǒng)管理者,甚至使用者會提出毫無道理的需求,數(shù)據(jù)庫管理員必須圓融地引導、修正及說服他們,但同時也能堅持管理規(guī)范。