作為一名開發人員,你不必知道如何安裝和配置軟件。這應該是DBA或者系統管理員(system administrator,SA)的任務。安裝Oracle Net、配置監聽器、配置共享服務器、建立連接池、安裝數據庫、創建數據庫等,這些事情我都會交給DBA/SA來做。
一般來講,開發人員不必知道如何對操作系統調優。我個人通常會讓系統的SA負責這個任務。作為數據庫應用的軟件開發人員,應該能熟練地使用你選擇的操作系統,但是不要求你能對它調優。
DBA最重大的職責是數據庫恢復。注意,我說的可不是“備份”,而是“恢復”。而且,我認為這也是DBA惟一重要的職責。DBA要知道回滾(rollback)和重做(redo)怎么工作,不錯,這也是開發人員要了解的。DBA還要知道如何完成表空間時間點恢復,這一點開發人員不必介入。如果你能有所了解,也許以后會用得上,但是作為開發人員目前不必親力而為。
在數據庫實例級調優,并得出最優的PGA_AGGREGATE_TARGET是什么,這一般是DBA的任務(數據庫往往能幫助他們得出正確的答案)。也有一些例外情況,有時開發人員可能需要修改會話的某個設置,但是如果在數據庫級修改設置,就要由DBA來負責。一般數據庫并不是只支持一位開發人員的應用,而是運行著多個應用,因此只有支持所有應用的DBA才能做出正確的決定。
分配空間和管理文件也是DBA的工作。開發人員可以對分配的空間做出估計(他們覺得需要多少空間),但是余下的都要由DBA/SA決定。
實質上講,開發人員不必知道如何運行數據庫,他們只需要知道如何在數據庫中運行。開發人員和DBA要協同解決問題,但各有分工。假設你是一位開發人員,如果你的查詢用的資源太多,DBA就會來找你;如果你不知道怎么讓系統跑得更快,可以去找DBA(如果應用已經得到充分調優,此時就可以完成實例級調優)。
這些任務因環境而異,不過我還是認為存在著分工。好的開發人員往往是很糟糕的DBA,反之亦然。在我看來,他們的能力不同、思路不同,而且個性也不同。很自然地,人們都愛做自己最喜歡的工作,而且能越做越好,形成良性循環。如果一個人比較喜歡某項工作,他會做得更好,但是這并不是說其他工作就一定做得很糟。就我而言,我覺得我更應算是一位開發人員,但兼有DBA的許多觀點。我不僅喜歡開發,也很喜歡“服務器方面”的工作(這大大提高了我的應用調優水平,而且總會有很多收獲)。
文章來源于領測軟件測試網 http://www.kjueaiud.com/