有一點很肯定要建立最成功的信息系統前提是DBA與應用開發人員之間要有一種共生關系在這一節裡我想從開發人員的角度談談開發人員與DBA之間的分工(假設所有正式開發都有DBA小組的參與)
作為一名開發人員你不必知道如何安裝和配置軟件這應該是DBA或者系統管理員(system administratorSA)的任務安裝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的許多觀點我不僅喜歡開發也很喜歡服務器方面的工作(這大大提高了我的應用調優水平而且總會有很多收獲)
From:http://tw.wingwit.com/Article/program/SQL/201311/16205.html