from:http://tech.it168.com/n/2008-05-15/200805151903765.shtml
從一個“普通”的Oracle DBA(Oracle數(shù)據(jù)庫管理員)轉(zhuǎn)變?yōu)镺racle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員),有兩個內(nèi)容你必須去弄清楚。第一個內(nèi)容是如何成為一個Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員)。第二個內(nèi)容是你要搞清楚Oracle應(yīng)用程序背后的架構(gòu)體系,也就是說你要明白諸如以下產(chǎn)品的結(jié)構(gòu)體系:Oracle電子商務(wù)套件、Oracle 11i數(shù)據(jù)庫、Siebel產(chǎn)品等。
本文首先講述如何從一個普通的Oracle DBA轉(zhuǎn)變?yōu)橐粋€Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員),接著講述一些Oracle應(yīng)用軟件架構(gòu)方面的內(nèi)容 。
如何成為Oracle應(yīng)用程序數(shù)據(jù)庫管理員
首先是角色的轉(zhuǎn)變
Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員)對“普通”的Oracle DBA(Oracle數(shù)據(jù)庫管理員)來說是一個很大的挑戰(zhàn)。拿Oracle EBS DBA(Oracle 電子商務(wù)套件DBA)來說,不僅需要了解EBS的各個組件、服務(wù),而且還要更主動和其他相關(guān)人員接觸。 一個Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員)不僅需要和其他DBA一樣去負(fù)責(zé)managing、 sizing、maintaining和 tuning database這些日常的數(shù)據(jù)庫管理的工作,如果他的Apps database是OLTP系統(tǒng)的話,他還需要監(jiān)察wait和lock 。Oracle E-Business Suite還有一些特性需要DBA去完成,比如從外部資源里灌數(shù)據(jù)到Apps database里,或支持開發(fā)人員從已有數(shù)據(jù)中提取數(shù)據(jù)。
接著工作內(nèi)容的轉(zhuǎn)變
作為一個Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員),要想更好的對Oracle Application database做支持,需要仔細(xì)記住以下幾項。
1.網(wǎng)絡(luò)上沒有什么比較容易簡單的文檔讓你去熟悉Apps DBA,所以我建議去看幫助。
2.在你沒有經(jīng)過多次測試并且得到客戶認(rèn)可的時候不要去打補丁,并且你要確信這個補丁解決了現(xiàn)有的問題,而且沒有帶來其它新的問題。
3.記住Oracle Applications會有很多索引,定期rebuild index會對性能有好處,當(dāng)然做這項工作應(yīng)該在系統(tǒng)的空閑時間。
4.不要為了提高性能而在沒有詢問oracle Support前試著去增加額外的indexes。如果你一定要去做,那千萬記住要有文檔作記錄,因為在這之后你再打patch的時候它可能會把你做的修改自動復(fù)原。
5. 知道怎么樣是正確的打patch,先計劃打哪個patch,然后取得patch,接著打patch,測試,最后文檔記錄。
6. 要知道任何時刻數(shù)據(jù)庫都可能會有一些object 是invalid的,你的一些操作也會增加invalid objects,定期檢查這些invalid objects的數(shù)量,然后定期用utlrp去重新編譯,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用SYS運行。在你的DB運行過程中如果碰到錯誤,就可以先重新編譯invalid objects,如果沒有解決問題再去遞交iTAR(Internet created Technical Assistance Request).
7.能看懂日志。
8.了解Apps database的環(huán)境,包括操作系統(tǒng)和DB的,當(dāng)你對你的工作環(huán)境了如指掌后,一切也就變得容易了,那時,你就是一個悠閑的Apps DBA了。
另外,對于APPS DB(應(yīng)用程序數(shù)據(jù)庫)來說,你可能需要創(chuàng)建或拷貝(克隆)多個生產(chǎn)庫以外的數(shù)據(jù)庫,比如測試和開發(fā)數(shù)據(jù)庫,當(dāng)然,需要多少數(shù)據(jù)庫是由你的商業(yè)需求所決定的。開發(fā)環(huán)境數(shù)據(jù)庫是供開發(fā)人員進行report,PL/SQL等開發(fā)的,這個環(huán)境可以在開發(fā)人員覺得數(shù)據(jù)已經(jīng)不再滿足開發(fā)需求的時候,當(dāng)然也可以在這個環(huán)境測試補丁(patches)。當(dāng)然最終使用patch的時候還需要在測試環(huán)境做測試,因為測試數(shù)據(jù)庫是和生產(chǎn)數(shù)據(jù)庫環(huán)境最接近的。(上面說的克隆cloning是一種將applications layer和database layer完全復(fù)制的一種方法。)所以,當(dāng)你擁有這三個數(shù)據(jù)庫的時候,打patch的步驟是先development database再test database最后才在production database環(huán)境應(yīng)用。
構(gòu)架應(yīng)用體系
如果你研究過Oracle Forms,使用過Application Server和Developer Suite來開發(fā)、配置部署form和report,并且曾經(jīng)作為一名Oracle DBA,經(jīng)歷過許多管理和維護的工作如patching和cloning的話,那么你就已經(jīng)能夠掌握了OA 90%的內(nèi)容。Oracle Apps應(yīng)該是這樣的應(yīng)用軟件,高速度、低拖延的ERP應(yīng)用軟件,使用Oracle所能提供的最好的web和數(shù)據(jù)庫組件。我說的對嗎?實際上不完全對,在11.5.9的版本里,你能看到應(yīng)用服務(wù)器最早期的一個版本,并且Oracle的版本還是8.0.6。
EBS環(huán)境最簡單配置也包括兩個服務(wù)器,這兩個服務(wù)器也就是我們熟知的兩層:數(shù)據(jù)庫層,和中間層,也叫應(yīng)用層。數(shù)據(jù)庫層就如字面的意思,就是應(yīng)用程序的后端數(shù)據(jù)庫。中間層就類似Application Server(應(yīng)用程序服務(wù)器)。
中間層
在中間層,更確切的說運行在中間層上的還有幾種服務(wù)。所有的服務(wù)都不相同,有OC4J、report engine、form等。你能看到應(yīng)用服務(wù)器(Application Server)存在于中間層,另外還有Oracle應(yīng)用程序具體的服務(wù)器。總的來說,有六種服務(wù)器存在于中間層和應(yīng)用層,它們是:
? Web 服務(wù)器
? Forms服務(wù)器
? Reports 服務(wù)器
? Discoverer服務(wù)器
? 并發(fā)處理服務(wù)器
? Admin服務(wù)器
至于Application Server,上面列舉的其它服務(wù)器和Application Server性質(zhì)不同的就是并發(fā)處理服務(wù)器了。對于并發(fā)處理服務(wù)器,我們可以認(rèn)為它是一個助手的角色,在EBS用戶請求和數(shù)據(jù)處理過程中協(xié)調(diào)作業(yè)和過程;另外,如現(xiàn)代的Application Server,上面列舉的服務(wù)并不是每個都必須在相同的服務(wù)器上。
我們可以類似的認(rèn)為Oracle Apps配置就是對Forms 和 Reports 服務(wù),以及后端數(shù)據(jù)庫的配置。在app server 和數(shù)據(jù)庫之間物理或者邏輯關(guān)系是什么樣的?在Oracle應(yīng)用程序世界里,在中間層生成的文件能夠,有時是需要放到數(shù)據(jù)庫層。這些文件大多以文本文件的形式存在,包括配置信息。其他文件是與cloning相關(guān)的。
下面的圖標(biāo)有助于說明每層的主要組成部分。該圖標(biāo)來自O(shè)racle Applications Concepts Release 11i的圖2-1。如下圖所示:
在中間層有許多的“父級”目錄。特別要提到其中的兩個,這個兩個在文檔中一次又一次的看到,它們就是APPL_TOP 和COMMON_TOP。
數(shù)據(jù)庫層
數(shù)據(jù)庫層又是什么樣子了?令人驚奇的是,Oracle Apps數(shù)據(jù)庫文件格式或許令人難以置信,并不是由于它的復(fù)雜性,而恰恰是一點都不復(fù)雜。同樣在“父級”結(jié)構(gòu)中,數(shù)據(jù)庫有四種數(shù)據(jù),他們分別是數(shù)據(jù)、索引、系統(tǒng)和臨時表空間位置。你或許能看到所有的和數(shù)據(jù)庫文件相關(guān)的數(shù)據(jù)都放在一個路徑,或者分區(qū)里,所有的索引也是在一個路徑下,同樣系統(tǒng)和臨時表空間也是如此。重做日志能夠放在兩個位置。你或許看到上百的表空間都有一到兩個文件,你能看到四個表空間模型。
說到重做日志和一般的重做操作,我們肯定知道的一件事情就是在真實的DBA世界里,我們希望重做日志存在快速磁盤中,由于寫入量的緣故。你曾經(jīng)在磁盤中放置一個控制文件嗎?如果你沒有看到控制文件在事務(wù)等待過程中并行寫入,那么看一看Oracle Apps安裝過程,情況就是這樣的。當(dāng)前文檔聲稱或者說分配重做日志緩沖區(qū)大小最好是1MB。Oracle在MetaLink上有一個注釋,推薦Oracle Apps DBA將重做日志緩沖區(qū)設(shè)為10MB。
另外一個和一般數(shù)據(jù)庫不同的地方就是必須要設(shè)置初始參數(shù)。在初始文件中設(shè)置初始參數(shù)還不常見。
在使用Oracle Apps時,你不得不向你的OLTP或者DSS數(shù)據(jù)庫打補丁的時候,如何保證5個9的可靠性呢,5個9的可靠性意味著每年只有5分鐘的停機時間。好了,雖然說沒有這么嚴(yán)格,但是仍舊有許多測試工作和質(zhì)量保證工作需要完成。為了更好的服務(wù)于最終用戶,你還需要了解些Apps的結(jié)構(gòu),并且掌握專有名詞的含義,比如雖然你不需要掌握財務(wù)模塊是如何實現(xiàn)的,但是還是需要知道AR是借,AP是貸,GL是總帳,這樣你在遇到問題的時候就可能及時知道數(shù)據(jù)是怎么來的,是那個模塊,該找什么人去溝通。
你如何備份你的數(shù)據(jù)庫?在EBS中,數(shù)據(jù)庫備份時非常直接的,中間層組件就有一些復(fù)雜了。慶幸的是,Oracle開發(fā)了一個叫做Rapid Clone的工具,步驟歸納如下:
? 在每層運行基于perl的腳本語言(創(chuàng)建一個XML文件,里面包含了配置信息,不過對源系統(tǒng)不影響)
? 將每層的相關(guān)部分復(fù)制到目標(biāo)系統(tǒng)
? 運行基于perl語言的config/clone腳本來重新配置環(huán)境或者每層的context文件。
Application,middle tier,database之間有著復(fù)雜的連接,常常某一個地方出了問題卻在其他地方上表現(xiàn)出來(有點象中醫(yī)),或者說在一個地方出的問題,影響到另一個地方,又影響到其他,然后最終影響到整體性能。比如一個FORM 沒有被正確執(zhí)行,而你作為一個DBA可能最先發(fā)現(xiàn)的是性能的下降,這會讓你很頭疼。另外,在打補丁后,原有的forms 或 reports也可能在執(zhí)行上與打補丁之前有所不同了。
最后,我要說,你現(xiàn)在接觸和管理的是比你以前復(fù)雜的多的系統(tǒng),這套系統(tǒng)的每一個部分都不能單獨來看,一葉障目,不見泰山,遇到問題應(yīng)該從整體思考。一個Apps DBA是一個對這套系統(tǒng)每一部分都有所了解的人。
結(jié)論
Oracle Applications DBA(Oracle應(yīng)用程序數(shù)據(jù)庫管理員)比“普通”的Oracle DBA(Oracle數(shù)據(jù)庫管理員)門檻高了很了很多,不僅要有處理數(shù)據(jù)庫問題的能力,還需要了解整個應(yīng)用程序的構(gòu)架,從大處著眼,整體考慮問題。總之,扮演者DBA 和 系統(tǒng)分析師的角色。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
