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