從一個
普通
的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
sizing
maintaining和 tuning database這些日常的數據庫管理的工作
如果他的Apps database是OLTP系統的話
他還需要監察wait和lock
Oracle E
Business 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去重新編譯
utlrp
squ在ORACLE HOME的rdbms/admin下
需要用SYS運行
在你的DB運行過程中如果碰到錯誤
就可以先重新編譯invalid objects
如果沒有解決問題再去遞交iTAR(Internet created Technical Assistance Request)
.能看懂日志
.了解Apps database的環境
包括操作系統和DB的
當你對你的工作環境了如指掌後
一切也就變得容易了
那時
你就是一個悠閒的Apps DBA了
另外
對於APPS DB(應用程序數據庫)來說
你可能需要創建或拷貝(克隆)多個生產庫以外的數據庫
比如測試和開發數據庫
當然
需要多少數據庫是由你的商業需求所決定的
開發環境數據庫是供開發人員進行report
PL/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(應用程序服務器)
中間層
在中間層
更確切的說運行在中間層上的還有幾種服務
所有的服務都不相同
有OC
J
report engine
form等
你能看到應用服務器(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安裝過程
情況就是這樣的
當前文檔聲稱或者說分配重做日志緩沖區大小最好是
MB
Oracle在MetaLink上有一個注釋
推薦Oracle Apps DBA將重做日志緩沖區設為
MB
另外一個和一般數據庫不同的地方就是必須要設置初始參數
在初始文件中設置初始參數還不常見
在使用Oracle Apps時
你不得不向你的OLTP或者DSS數據庫打補丁的時候
如何保證
個
的可靠性呢
個
的可靠性意味著每年只有
分鐘的停機時間
好了
雖然說沒有這麼嚴格
但是仍舊有許多測試工作和質量保證工作需要完成
為了更好的服務於最終用戶
你還需要了解些Apps的結構
並且掌握專有名詞的含義
比如雖然你不需要掌握財務模塊是如何實現的
但是還是需要知道AR是借
AP是貸
GL是總帳
這樣你在遇到問題的時候就可能及時知道數據是怎麼來的
是那個模塊
該找什麼人去溝通
你如何備份你的數據庫?在EBS中
數據庫備份時非常直接的
中間層組件就有一些復雜了
慶幸的是
Oracle開發了一個叫做Rapid Clone的工具
步驟歸納如下
; 在每層運行基於perl的腳本語言(創建一個XML文件
裡面包含了配置信息
不過對源系統不影響)
; 將每層的相關部分復制到目標系統
; 運行基於perl語言的config/clone腳本來重新配置環境或者每層的context文件
Application
middle tier
database之間有著復雜的連接
常常某一個地方出了問題卻在其他地方上表現出來(有點象中醫)
或者說在一個地方出的問題
影響到另一個地方
又影響到其他
然後最終影響到整體性能
比如一個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