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