熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何成為一名Oracle應用DBA

2013-11-13 12:45:02  來源: Oracle 
從一個普通的Oracle DBA(Oracle數據庫管理員)轉變為Oracle Applications DBA(Oracle應用程序數據庫管理員)有兩個內容你必須去弄清楚第一個內容是如何成為一個Oracle Applications DBA(Oracle應用程序數據庫管理員)第二個內容是你要搞清楚Oracle應用程序背後的架構體系也就是說你要明白諸如以下產品的結構體系Oracle電子商務套件Oracle i數據庫Siebel產品等

    本文首先講述如何從一個普通的Oracle DBA轉變為一個Oracle Applications DBA(Oracle應用程序數據庫管理員)接著講述一些Oracle應用軟件架構方面的內容

如何成為Oracle應用程序數據庫管理員
首先是角色的轉變
    Oracle Applications DBA(Oracle應用程序數據庫管理員)對普通的Oracle DBA(Oracle數據庫管理員)來說是一個很大的挑戰拿Oracle EBS DBA(Oracle 電子商務套件DBA)來說不僅需要了解EBS的各個組件服務而且還要更主動和其他相關人員接觸 一個Oracle Applications DBA(Oracle應用程序數據庫管理員)不僅需要和其他DBA一樣去負責managing sizingmaintaining和 tuning database這些日常的數據庫管理的工作如果他的Apps database是OLTP系統的話他還需要監察wait和lock Oracle EBusiness Suite還有一些特性需要DBA去完成比如從外部資源裡灌數據到Apps database裡或支持開發人員從已有數據中提取數據

接著工作內容的轉變
    作為一個Oracle Applications DBA(Oracle應用程序數據庫管理員)要想更好的對Oracle Application database做支持需要仔細記住以下幾項
 .網絡上沒有什麼比較容易簡單的文檔讓你去熟悉Apps DBA所以我建議去看幫助
 .在你沒有經過多次測試並且得到客戶認可的時候不要去打補丁並且你要確信這個補丁解決了現有的問題而且沒有帶來其它新的問題
 .記住Oracle Applications會有很多索引定期rebuild index會對性能有好處當然做這項工作應該在系統的空閒時間
 .不要為了提高性能而在沒有詢問oracle Support前試著去增加額外的indexes如果你一定要去做那千萬記住要有文檔作記錄因為在這之後你再打patch的時候它可能會把你做的修改自動復原
 .知道怎麼樣是正確的打patch先計劃打哪個patch然後取得patch接著打patch測試最後文檔記錄
 .要知道任何時刻數據庫都可能會有一些object 是invalid的你的一些操作也會增加invalid objects定期檢查這些invalid objects的數量然後定期用utlrp去重新編譯utlrpsqu在ORACLE HOME的rdbms/admin下需要用SYS運行在你的DB運行過程中如果碰到錯誤就可以先重新編譯invalid objects如果沒有解決問題再去遞交iTAR(Internet created Technical Assistance Request) 
 .能看懂日志
 .了解Apps database的環境包括操作系統和DB的當你對你的工作環境了如指掌後一切也就變得容易了那時你就是一個悠閒的Apps DBA了

    另外對於APPS DB(應用程序數據庫)來說你可能需要創建或拷貝(克隆)多個生產庫以外的數據庫比如測試和開發數據庫當然需要多少數據庫是由你的商業需求所決定的開發環境數據庫是供開發人員進行reportPL/SQL等開發的這個環境可以在開發人員覺得數據已經不再滿足開發需求的時候當然也可以在這個環境測試補丁(patches)當然最終使用patch的時候還需要在測試環境做測試因為測試數據庫是和生產數據庫環境最接近的(上面說的克隆cloning是一種將applications layer和database layer完全復制的一種方法)所以當你擁有這三個數據庫的時候打patch的步驟是先development database再test database最後才在production database環境應用

構架應用體系
    如果你研究過Oracle Forms使用過Application Server和Developer Suite來開發配置部署form和report並且曾經作為一名Oracle DBA經歷過許多管理和維護的工作如patching和cloning的話那麼你就已經能夠掌握了OA %的內容Oracle Apps應該是這樣的應用軟件高速度低拖延的ERP應用軟件使用Oracle所能提供的最好的web和數據庫組件我說的對嗎?實際上不完全對的版本裡你能看到應用服務器最早期的一個版本並且Oracle的版本還是

    EBS環境最簡單配置也包括兩個服務器這兩個服務器也就是我們熟知的兩層數據庫層和中間層也叫應用層數據庫層就如字面的意思就是應用程序的後端數據庫中間層就類似Application Server(應用程序服務器)
中間層

    在中間層更確切的說運行在中間層上的還有幾種服務所有的服務都不相同有OCJreport engineform等你能看到應用服務器(Application Server)存在於中間層另外還有Oracle應用程序具體的服務器總的來說有六種服務器存在於中間層和應用層它們是
&#; Web 服務器
&#; Forms服務器
&#; Reports 服務器
&#; Discoverer服務器
&#; 並發處理服務器
&#; Admin服務器
   
    至於Application Server上面列舉的其它服務器和Application Server性質不同的就是並發處理服務器了對於並發處理服務器我們可以認為它是一個助手的角色在EBS用戶請求和數據處理過程中協調作業和過程另外如現代的Application Server上面列舉的服務並不是每個都必須在相同的服務器上

    我們可以類似的認為Oracle Apps配置就是對Forms 和 Reports 服務以及後端數據庫的配置在app server 和數據庫之間物理或者邏輯關系是什麼樣的?在Oracle應用程序世界裡在中間層生成的文件能夠有時是需要放到數據庫層這些文件大多以文本文件的形式存在包括配置信息其他文件是與cloning相關的




    下面的圖標有助於說明每層的主要組成部分該圖標來自Oracle Applications Concepts Release i的圖如下圖所示   
   
    在中間層有許多的父級目錄特別要提到其中的兩個這個兩個在文檔中一次又一次的看到它們就是APPL_TOP 和COMMON_TOP


數據庫層
    數據庫層又是什麼樣子了?令人驚奇的是Oracle Apps數據庫文件格式或許令人難以置信並不是由於它的復雜性而恰恰是一點都不復雜同樣在父級結構中數據庫有四種數據他們分別是數據索引系統和臨時表空間位置你或許能看到所有的和數據庫文件相關的數據都放在一個路徑或者分區裡所有的索引也是在一個路徑下同樣系統和臨時表空間也是如此重做日志能夠放在兩個位置你或許看到上百的表空間都有一到兩個文件你能看到四個表空間模型

    說到重做日志和一般的重做操作我們肯定知道的一件事情就是在真實的DBA世界裡我們希望重做日志存在快速磁盤中由於寫入量的緣故你曾經在磁盤中放置一個控制文件嗎?如果你沒有看到控制文件在事務等待過程中並行寫入那麼看一看Oracle Apps安裝過程情況就是這樣的當前文檔聲稱或者說分配重做日志緩沖區大小最好是MBOracle在MetaLink上有一個注釋推薦Oracle Apps DBA將重做日志緩沖區設為MB
   
    另外一個和一般數據庫不同的地方就是必須要設置初始參數在初始文件中設置初始參數還不常見
   
    在使用Oracle Apps時你不得不向你的OLTP或者DSS數據庫打補丁的時候如何保證的可靠性呢的可靠性意味著每年只有分鐘的停機時間好了雖然說沒有這麼嚴格但是仍舊有許多測試工作和質量保證工作需要完成為了更好的服務於最終用戶你還需要了解些Apps的結構並且掌握專有名詞的含義比如雖然你不需要掌握財務模塊是如何實現的但是還是需要知道AR是借AP是貸GL是總帳這樣你在遇到問題的時候就可能及時知道數據是怎麼來的是那個模塊該找什麼人去溝通

    你如何備份你的數據庫?在EBS中數據庫備份時非常直接的中間層組件就有一些復雜了慶幸的是Oracle開發了一個叫做Rapid Clone的工具步驟歸納如下
&#; 在每層運行基於perl的腳本語言(創建一個XML文件裡面包含了配置信息不過對源系統不影響)
&#; 將每層的相關部分復制到目標系統
&#; 運行基於perl語言的config/clone腳本來重新配置環境或者每層的context文件

    Applicationmiddle tierdatabase之間有著復雜的連接常常某一個地方出了問題卻在其他地方上表現出來(有點象中醫)或者說在一個地方出的問題影響到另一個地方又影響到其他然後最終影響到整體性能比如一個FORM 沒有被正確執行而你作為一個DBA可能最先發現的是性能的下降這會讓你很頭疼另外在打補丁後原有的forms 或 reports也可能在執行上與打補丁之前有所不同了

    最後我要說你現在接觸和管理的是比你以前復雜的多的系統這套系統的每一個部分都不能單獨來看一葉障目不見泰山遇到問題應該從整體思考一個Apps DBA是一個對這套系統每一部分都有所了解的人

結論
    Oracle Applications DBA(Oracle應用程序數據庫管理員)比普通的Oracle DBA(Oracle數據庫管理員)門檻高了很了很多不僅要有處理數據庫問題的能力還需要了解整個應用程序的構架從大處著眼整體考慮問題總之扮演者DBA 和 系統分析師的角色
 


From:http://tw.wingwit.com/Article/program/Oracle/201311/16510.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.