職位概述
數據庫管理員(Database Administrator,簡稱DBA),是一個負責管理和維護數據庫服務器的人。數據庫管理員負責全面管理和控制數據庫系統。這個職位對不同的人意味著不同的意義。
數據庫管理員崗位職責
1.測試程序或數據庫,糾正錯誤,并作出必要的修改
2.修改現有的數據庫和數據庫管理系統
3.規劃、協調和實施數據庫的安全保護措施
4.與其他工作人員協調一起開發數據庫
5.編寫數據庫的說明
6.培訓用戶并回答相關問題
7.指定數據庫用戶的訪問級別
8.審批、調度、計劃并監督安裝新的數據庫
9.審查項目的要求,估計完成項目所需的時間和成本
10.制定標準和準則來指導軟件的使用和授權,以保護信息
11.審查程序,更改數據庫中的管理系統手冊
12.開發整合不同的產品,以滿足不同的需求
13.開發數據模型,闡述數據庫的原理
數據庫管理員任職條件
技術是指DBA執行一項任務時所需要的技能。在數據庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名DBA應掌握的一些技術(排名不分先后)。
1.理解數據備份/恢復與災難恢復
恢復已損壞的數據庫是每一個DBA應掌握的最重要的技能。DBA需要完全理解數據庫所有可能的備份與恢復方法,以及不同備份方法與不同恢復策略的對應關系。此外,DBA還需要與業務部門合作,一起確認業務需求,明確用戶能夠容忍的數據丟失底線。此外,業務用戶還需要確定在系統故障情況下,他們的業務能夠維持多長時間。理解這些需求可以幫助DBA開發出一個滿足業務用戶要求的備份/恢復方法。一個優秀的DBA要定期測試備份與恢復流程,保證他們有能力恢復業務數據,滿足企業所規定的業務數據丟失與恢復要求。
2.工具集的使用
所謂工具集,指是的他們要有一組用于執行不同DBA任務的腳本。這個工具集應該包含不同的小代碼片段,它們可以快速診斷問題或執行一個特定的任務。這些工具腳本應該按DBA的活動類型歸類,如備份、索引維護、性能優化、容量管理等。由于總是會執行新任務、發現新問題或找到其他人開發的好用腳本,因此一個優秀的DBA會不斷地給這個工具集增加新腳本。此外,他還應該了解網上哪里能夠找到一些免費的工具和腳本。一個好的DBA知道什么時候可以利用其他人編寫的腳本,從而節省自己的時間和改進自己的工具集。
3.知道從哪里獲得幫助
即使是數據庫大牛,也不可能是無所不知的,每個人都有需要尋求幫助或建議的時候。而知道從何處尋找建議是很重要的。如果一個數據庫實例不能按預期方式運轉,那么快速尋找新問題的解決方法也是一個重要能力。一個好的DBA知道如何快速地在網上查找一個未知問題的解決方法。此外,他們也可能已經知道了一些非常不錯的網站,也知道業界專家會提供一些好建議,同時知道什么時候應該忽略一些不好的建議。你可能想象不到,確實有一些建議不值得參考。
4.知道如何使用原生性能工具
以SQL Server舉例,性能是一個關鍵的問題,因此DBA需要知道如何修復故障和監控性能問題。現在有許多第三方性能監控工具可以幫助DBA優化性能。如果DBA只使用第三方工具,而不會使用SQL Server自帶的原生工具來監控性能,那么相信很快就會出現問題。雖然使用第三方工具來監控性能也很不錯,但是DBA一定要理解SQL自帶的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic ManagementViews、系統/擴展的存儲過程、Extended Events等。許多第三方工具實際上在使用這些底層的原生工具。因此,理解這些自帶的原生工具將有利于增強DBA使用第三方工具的經驗。
5.研究新版本
在技術領域中,沒有什么是一成不變的。每隔兩三年,主流數據庫廠商都會發布一個大版本的更新。DBA應該緊跟新版本所作的修改,它們可能有許多變化方法,最好的方法是遲早介入這個過程。測試版開放后馬上下載和安裝,盡快掌握第一手使用經驗。一名好的DBA總是走在學習排頭兵,總是會第一時間安裝和測試新版本。這樣他們就可以盡早理解新特性,然后提出一些合理的新建議,幫助組織更好地利用新版本數據庫。
6.理解代碼最佳實踐方法
DBA應該了解如何編寫高效的代碼。有許多糟糕的編碼實踐方法會導致拙劣的性能。一名好的DBA要能夠理解和識別這些糟糕的編碼實踐方法,知道如何修改這些爛代碼,讓它們變成高效代碼。此外,他們還要記錄下寫代碼的最佳實踐方法,并且將這些實踐方法分享給其他人。
7.持續不斷地學習
數據庫及其組件涉及面非常廣。DBA很難理解一個技術的方方面面。DBA需要持續學習如何管理數據庫。這個學習過程有很多方法。其中之一就是參加正式培訓。但是,并非人人都有這樣充裕的事件和金錢,也并非人人都能夠放下手頭工作專門出去參加正式的培訓。但是,還有許多其他方法可以獲得培訓,而且大多數還是免費的。一名好的DBA一定要訂閱一些定期發布數據庫新技巧和新文章的社區網站。此外,他還應該加入一些用戶組織,可以在周末參加一些當地的免費沙龍活動。
8.數據庫安全性
在最近一段時間里,安全性是一個熱門話題。DBA應該完全掌握如何實現數據庫的安全訪問。他們應該理解操作系統身份驗證和數據庫身份驗證的區別,以及它們各自的使用場合。他們應該理解如何使用數據庫角色來管理不同類型用戶的安全配置。他們應該理解連接數據庫的端口與協議。此外,他們還應該理解如何加密整個數據庫,或者加密一個數據庫中一個表的某一個字段,同時理解關于加密數據的各種問題。
9.數據庫設計
決定數據庫性能的一個關鍵問題是數據庫設計。DBA需要理解關于數據庫設計的各個方面。他們要能夠理解設計好壞的區別。他們需要理解為什么使用正確的外鍵約束、主鍵、檢查約束和使用數據類型能夠保持數據庫的數據完整性和實現高效的數據查詢與更新。
10.索引設計
數據庫索引是提高應用程序檢索和更新數據速度的重要環節。DBA需要知道索引的工作原理。他們應該知道聚簇索引和非聚簇索引的區別,知道這些索引的物理存儲方式。DBA應該知道如何在執行計劃中使用這些索引。他們應該理解如何找到索引的使用統計、理解索引碎片及如何發現丟失的索引。他們應該知道如何維護索引,以及索引統計信息對于查詢引擎的重要作用。
11.容量監控與規劃
數據庫往往要使用大量的資源,包括CPU、內存、I/O及磁盤空間。DBA應該理解如何監控數據庫所需要的不同主機資源的用量。他們應該能夠理解這些資源在不同時間的使用情況,以及利用歷史使用數據來規劃未來的容量需求。在監控過程中,DBA應該能夠預見到容量規劃會在將來什么時候出現問題,然后采取必要的措施保持數據庫不會因為容量限制而出現中斷。
12.數據庫許可證
不同的產品有許多不同的許可證授權方式。而且,同一款產品本身又有許多不同的版本。DBA應該理解所負責的數據庫版本的不同授權模式。他們應該能夠提供指導如何通過合理購買授權來減少現在的數據庫總擁有成本,以及如何合理利用授權方法來降低未來版本的升級成本。
13.盡可能實現自動化
DBA每天都需要執行許多的日常任務。其中一些任務需要每天執行,而另一些則每周、每月或每年執行。一名好的DBA需要理解如何高效地安排自己的時間。其中一種方法是建立工作流程,這些日常任務的自動執行。通過實現日常任務的自動化執行,DBA就可以用更多的時間去關注于數據庫環境管理中遇到的嚴重問題。
本文只是表達了筆者個人對于DBA應具備的重要特質的看法。你具備的特質越多,作為DBA的你就越優秀。成為一名成功DBA的關鍵是不斷地學習與提高,努力去掌握更多關于如何管理和維護數據庫環境的知識。
很多時候管理人員都忽視了DBA的個性特點,他們只關注DBA的技術能力。實際上,上面談到的每個職責都意味著:DBA需要跟各種人員打交道,這些人員可能是銷售商、用戶、開發人員或者管理人員。這說明:DBA必須具有下面的個性特點:自信心、好奇心、堅韌的意志力、老練、自我驅動、注意細節。
技術是指DBA執行一項任務時所需要的技能。在數據庫環境的管理與維護中,技術任務可歸結成許多不同的分類。下面列出了一名DBA應掌握的一些技術(排名不分先后)。
數據庫管理員職位的工作經驗人群比例
無(10%)
1年以下(10%)
1-3年(11%)
3-5年(31%)
5-10年(21%)
10年以上(13%)
數據庫管理員職業發展路徑
職位的匯報上級
①IT項目經理
②產品研發經理
③
技術經理
職位的管理下屬
數據庫工程師
職位的轉職目的
①研發經理
②技術經理
企業招聘數據庫管理員可與
獵頭網合作,快速招聘到合適的人才。