講解數(shù)據(jù)庫管理員(DBA)與開發(fā)人員的關(guān)系
導(dǎo)讀:有一點(diǎn)很肯定,要建立最成功的信息系統(tǒng),前提是數(shù)據(jù)庫管理員DBA與應(yīng)用開發(fā)人員之間要有一種“共生關(guān)系”,本文我將為大家介紹二者的關(guān)系。我想從開發(fā)人員的角度談?wù)勯_發(fā)人員與DBA之間的分工(假設(shè)所有正式開發(fā)都有DBA小組的參與)。
作為一名開發(fā)人員,你不必知道如何安裝和配置軟件。這應(yīng)該是DBA或者系統(tǒng)管理員(system administrator,SA)的任務(wù)。安裝Oracle Net、配置監(jiān)聽器、配置共享服務(wù)器、建立連接池、安裝數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫等,這些事情我都會(huì)交給DBA/SA來做。
一般來講,開發(fā)人員不必知道如何對(duì)操作系統(tǒng)調(diào)優(yōu)。我個(gè)人通常會(huì)讓系統(tǒng)的SA負(fù)責(zé)這個(gè)任務(wù)。作為數(shù)據(jù)庫應(yīng)用的軟件開發(fā)人員,應(yīng)該能熟練地使用你選擇的操作系統(tǒng),但是不要求你能對(duì)它調(diào)優(yōu)。
DBA最重大的職責(zé)是數(shù)據(jù)庫恢復(fù)。注意,我說的可不是“備份”,而是“恢復(fù)”。而且,我認(rèn)為這也是DBA惟一重要的職責(zé)。DBA要知道回滾(rollback)和重做(redo)怎么工作,不錯(cuò),這也是開發(fā)人員要了解的。DBA還要知道如何完成表空間時(shí)間點(diǎn)恢復(fù),這一點(diǎn)開發(fā)人員不必介入。如果你能有所了解,也許以后會(huì)用得上,但是作為開發(fā)人員目前不必親力而為。
在數(shù)據(jù)庫實(shí)例級(jí)調(diào)優(yōu),并得出最優(yōu)的PGA_AGGREGATE_TARGET是什么,這一般是DBA的任務(wù)(數(shù)據(jù)庫往往能幫助他們得出正確的答案)。也有一些例外情況,有時(shí)開發(fā)人員可能需要修改會(huì)話的某個(gè)設(shè)置,但是如果在數(shù)據(jù)庫級(jí)修改設(shè)置,就要由DBA來負(fù)責(zé)。一般數(shù)據(jù)庫并不是只支持一位開發(fā)人員的應(yīng)用,而是運(yùn)行著多個(gè)應(yīng)用,因此只有支持所有應(yīng)用的DBA才能做出正確的決定。
分配空間和管理文件也是DBA的工作。開發(fā)人員可以對(duì)分配的空間做出估計(jì)(他們覺得需要多少空間),但是余下的都要由DBA/SA決定。
實(shí)質(zhì)上講,開發(fā)人員不必知道如何運(yùn)行數(shù)據(jù)庫,他們只需要知道如何在數(shù)據(jù)庫中運(yùn)行。開發(fā)人員和DBA要協(xié)同解決問題,但各有分工。假設(shè)你是一位開發(fā)人員,如果你的查詢用的資源太多,DBA就會(huì)來找你;如果你不知道怎么讓系統(tǒng)跑得更快,可以去找DBA(如果應(yīng)用已經(jīng)得到充分調(diào)優(yōu),此時(shí)就可以完成實(shí)例級(jí)調(diào)優(yōu))。
這些任務(wù)因環(huán)境而異,不過我還是認(rèn)為存在著分工。好的開發(fā)人員往往是很糟糕的DBA,反之亦然。在我看來,他們的能力不同、思路不同,而且個(gè)性也不同。很自然地,人們都愛做自己最喜歡的工作,而且能越做越好,形成良性循環(huán)。如果一個(gè)人比較喜歡某項(xiàng)工作,他會(huì)做得更好,但是這并不是說其他工作就一定做得很糟。就我而言,我覺得我更應(yīng)算是一位開發(fā)人員,但兼有DBA的許多觀點(diǎn)。我不僅喜歡開發(fā),也很喜歡“服務(wù)器方面”的工作(這大大提高了我的應(yīng)用調(diào)優(yōu)水平,而且總會(huì)有很多收獲)。
數(shù)據(jù)庫管理員和數(shù)據(jù)庫開發(fā)員對(duì)與數(shù)據(jù)庫來說都是必不可少的,沒有他們數(shù)據(jù)庫將會(huì)停滯不前,而且一片糟糕,更甚者會(huì)從世界中消失,所以數(shù)據(jù)庫管理員和數(shù)據(jù)庫開發(fā)員是要共存的。
【編輯推薦】