Oracle 11g數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)重放_(tái)第1頁(yè)
Oracle 11g數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)重放_(tái)第2頁(yè)
Oracle 11g數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)重放_(tái)第3頁(yè)
Oracle 11g數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)重放_(tái)第4頁(yè)
Oracle 11g數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)重放_(tái)第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oraclle DBBA很早就就盼望能夠夠在生產(chǎn)環(huán)環(huán)境中捕獲獲應(yīng)用程序序的負(fù)載,然然后通過(guò)在在測(cè)試環(huán)境境中重放捕捕獲的負(fù)載載來(lái)判斷 HYPERLINK /keys/shujuku/index.html 數(shù)數(shù)據(jù)庫(kù)或應(yīng)應(yīng)用程序的的改動(dòng)對(duì)數(shù)數(shù)據(jù)庫(kù)性能能的影響, HYPERLINK /tag/899/index.html Oracle 11g數(shù)據(jù)庫(kù)新的數(shù)據(jù)庫(kù)重放特性使DBA可以捕獲,處理負(fù)載,然后有選擇性地或跨大范圍的數(shù)據(jù)庫(kù)環(huán)境和平臺(tái)全部重放,本文為在日日益不穩(wěn)定定的數(shù)據(jù)庫(kù)庫(kù)環(huán)境中使使用Oraacle 11g數(shù)數(shù)據(jù)庫(kù)重放放有效地快快速預(yù)報(bào)應(yīng)應(yīng)用程序的的改變對(duì)性性能的影響響提供一個(gè)個(gè)入門。 如果我在II

2、T行業(yè)這這幾年教會(huì)會(huì)了我一切切,那它是是繼墨菲定定律(凡事事只要有可可能出錯(cuò),那那就一定會(huì)會(huì)出錯(cuò))之之后的又一一真理了,過(guò)過(guò)去的幾年年里,我認(rèn)認(rèn) 識(shí)到了了多個(gè)墨菲菲定律推論論的正確性性,包括“替代的零零件往往不不能代用”及特別是是“墨菲實(shí)實(shí)際上是一一個(gè)樂(lè)觀主主義者”的的回答,我我希望有一一天我自己己的推論也也能通過(guò)長(zhǎng)長(zhǎng)期 的觀觀察被添加加到這些嚴(yán)嚴(yán)格的定律律中,我的的推論就是是:“沒(méi)有有東西能夠夠象在測(cè)試試環(huán)境那樣樣在生產(chǎn)環(huán)環(huán)境中運(yùn)轉(zhuǎn)轉(zhuǎn)”。Oraclle DBBA面臨一一個(gè)嚴(yán)峻的的挑戰(zhàn):如如何準(zhǔn)確預(yù)預(yù)報(bào)下一組組對(duì)數(shù)據(jù)庫(kù)庫(kù)或應(yīng)用程程序,甚至至是硬件 HYPERLINK /z/sys/safe-s

3、eting/index.html 配配置的改動(dòng)動(dòng)對(duì)整個(gè)數(shù)數(shù)據(jù)庫(kù)環(huán)境境產(chǎn)生的負(fù)負(fù)面影響。這里所說(shuō)說(shuō)的整個(gè)環(huán)環(huán)境字面上上的意思是是:任何應(yīng)應(yīng)用程序運(yùn)運(yùn)行時(shí)執(zhí)行行的每一條條SQL語(yǔ)語(yǔ)句,不管管它僅僅是是一個(gè)簡(jiǎn)單單的查詢語(yǔ)語(yǔ)句還是包包括大量DDML語(yǔ)句句的批處理理作業(yè),都都必須捕獲獲。這個(gè)挑挑戰(zhàn)目前變變得更加尖尖銳,因?yàn)闉楫?dāng)前的應(yīng)應(yīng)用程序負(fù)負(fù)載大都是是跨多個(gè)技技術(shù)產(chǎn)生的的:N層應(yīng)應(yīng)用程序 HYPERLINK /network/server/index.html 服服務(wù)器、wweb ffarmss、甚至傳傳統(tǒng)的客戶戶端/服務(wù)務(wù)器模式應(yīng)應(yīng)用程序。況且,當(dāng)當(dāng)某個(gè)應(yīng)用用程序執(zhí)行行速度慢下下來(lái)時(shí),要要跟蹤追捕捕

4、檢查性能能下降的根根本原因幾幾乎不可能能的。它可可能是因不不正確的 HYPERLINK /tag/3887/index.html 網(wǎng)網(wǎng)絡(luò)配置、不正確的的應(yīng)用程序序 HYPERLINK /z/server/seting/index.html 服務(wù)器配配置、甚至至可能是因因?yàn)閼?yīng)用程程序客戶端端環(huán)境變量量設(shè)置不正正確引起的的。目前實(shí)現(xiàn)這這個(gè)艱巨的的目標(biāo)唯一一的選擇是是“捕獲/重放”應(yīng)應(yīng)用程序負(fù)負(fù)載產(chǎn)品套套件,這類類應(yīng)用程序序是專門設(shè)設(shè)計(jì)用于捕捕獲當(dāng)前生生產(chǎn)環(huán)境數(shù)數(shù)據(jù)庫(kù)已經(jīng)經(jīng)執(zhí)行過(guò)的的完整負(fù)載載(p+00),然后后重放該負(fù)負(fù)載(p+1)。然然而,以我我多年的經(jīng)經(jīng)驗(yàn)看來(lái),這這意味著公公司要盡早早購(gòu)買第三

5、三方較昂貴貴的 HYPERLINK /solution/yingyong/index.html 解決方方案(如HHP的LooadRuunnerr工具)。軟件的許許可成本和和服務(wù)器的的配置成本本需要集中中精力考慮慮,特別是是人力資源源配置的考考慮,可能能在捕獲/重放負(fù)載載開始之前前很容易就就會(huì)達(dá)到六六位數(shù)美金金的投入了了。這就是是為什么許許多IT機(jī)機(jī)構(gòu)放棄了了這個(gè)想法法,因?yàn)闇y(cè)測(cè)試應(yīng)用程程序性能倒倒退的成本本因素使其其變得不太太可能。性能倒退之之外的因素素我之前寫的的關(guān)于Orraclee 11gg新的SQQL語(yǔ)句性性能調(diào)試特特性:SQQL性能分分析器(SSPA)和和SQL計(jì)計(jì)劃管理器器(SPMM

6、)已經(jīng)討討論過(guò)Orraclee 11gg是如何讓讓DBA定定位因應(yīng)用用程序環(huán)境境改變引起起的性能提提升、保持持原樣、性性能倒退的的SQL語(yǔ)語(yǔ)句的,所所有捕獲/重放工具具都必須要要能捕獲并并能比較源源(p+00) 和未未來(lái)(p+1)系統(tǒng)統(tǒng)、應(yīng)用程程序、數(shù)據(jù)據(jù)庫(kù)性能統(tǒng)統(tǒng)計(jì),特別別是當(dāng)前性性能較低的的SQL語(yǔ)語(yǔ)句。但這這里我還要要提出另外外兩個(gè)需要要標(biāo)記的回回歸類型:錯(cuò)誤回歸歸:在 重重放捕獲的的負(fù)載時(shí),常常常會(huì)遇到到錯(cuò)誤,事事實(shí)上這個(gè)個(gè)錯(cuò)誤幾乎乎就是一個(gè)個(gè)想要的結(jié)結(jié)果,例如如:我想校校驗(yàn)一個(gè)預(yù)預(yù)期中的異異常,如違違背引用完完整性(如如主鍵、外外鍵、唯一一鍵、 CCHECKK、NOTT NUULL約

7、束束)出現(xiàn)時(shí)時(shí)能被正確確地捕獲,同同時(shí),我還還希望有違違背重要的的事務(wù)規(guī)則則的情況出出現(xiàn)能被捕捕獲到,如如在檢查職職員工資單單時(shí)發(fā)現(xiàn)基基本工資與與總工資扣扣除所有費(fèi)費(fèi)用 后不不平衡的情情況,我希希望這種異異常能被當(dāng)當(dāng)作錯(cuò)誤一一樣被捕獲獲到。因此此,任何強(qiáng)強(qiáng)大的捕獲獲/重放工工具都必須須能夠監(jiān)視視下面三種種類型的錯(cuò)錯(cuò)誤回歸:所有預(yù)期的的錯(cuò)誤都發(fā)發(fā)生了嗎?有不是預(yù)期期的錯(cuò)誤狀狀態(tài)出現(xiàn)嗎嗎?很顯然然,這表明明嚴(yán)格的因因系統(tǒng)或應(yīng)應(yīng)用程序改改變的錯(cuò)誤誤回歸是可可能的。預(yù)期的錯(cuò)誤誤有沒(méi)有出出現(xiàn)的嗎?這種情況況更復(fù)雜了了,因?yàn)檫@這表明在系系統(tǒng)或應(yīng)用用程序內(nèi)某某些不祥的的事情已經(jīng)經(jīng)發(fā)送變化化了,也可可能是重要

8、要的事務(wù)規(guī)規(guī)則被濫用用或沒(méi)有應(yīng)應(yīng)用到所有有事務(wù)上。數(shù)據(jù)回歸:所有捕獲獲/重放工工具在重放放完成后,如如果數(shù)據(jù)本本身出現(xiàn)了了差異還必必須發(fā)出提提醒信號(hào),例例如,在測(cè)測(cè)試一個(gè)關(guān)關(guān)鍵任務(wù)的的金融系統(tǒng)統(tǒng)時(shí),我必必須確保相相同的 金金融業(yè)務(wù)安安裝合理的的順序完成成,在p+1環(huán)境所所有帳戶總總和都應(yīng)該該象p+00環(huán)境中達(dá)達(dá)到平衡,如如果結(jié)果不不一樣,我我必須考慮慮在我的應(yīng)應(yīng)用程序、數(shù)據(jù)庫(kù)或或環(huán)境中是是什么 改改變導(dǎo)致了了重放不精精確的情況況出現(xiàn)。捕獲和重放放套件的另另一個(gè)關(guān)鍵鍵特性是:在p+11環(huán)境上重重放捕獲的的負(fù)載前,必必須確保負(fù)負(fù)載捕獲啟啟動(dòng)時(shí)P+0環(huán)境被被復(fù)位,否否則可能會(huì)會(huì)誤診為數(shù)數(shù)據(jù)回歸,而而

9、實(shí)際上應(yīng)應(yīng)用程序,數(shù)數(shù)據(jù)庫(kù)和環(huán)環(huán)境都沒(méi)有有發(fā)送任何何改變。從屬的事務(wù)務(wù)需要捕獲獲并重放,這這好比鋼琴琴家演奏完完一段曲子子后,磁帶帶記錄不僅僅記錄了記記錄信息,還還記錄了每每個(gè)按鍵被被按下的頻頻率信息,本本質(zhì)上,它它給聽眾提提供 了一一份藝術(shù)大大師演奏風(fēng)風(fēng)格的精確確復(fù)本,包包括所有復(fù)復(fù)雜的演奏奏停頓(對(duì)對(duì)于小于225歲的年年輕讀者而而言,可能能沒(méi)有看到到過(guò)鋼琴演演奏磁帶,可可以用mpp3或waav文件替替 換,或或詢問(wèn)一下下年長(zhǎng)的同同事當(dāng)年聽聽磁帶的事事情。)數(shù)據(jù)庫(kù)重放放:功能摘摘要感謝Oraacle 11g新新的數(shù)據(jù)庫(kù)庫(kù)重放(DDBR)套套件為我們們提供了所所有討論到到的功能,DDBR允許許

10、允許DBBA:捕獲在生產(chǎn)產(chǎn)系統(tǒng)上產(chǎn)產(chǎn)生的負(fù)載載,這包括括跨多個(gè)會(huì)會(huì)話同時(shí)收收集所有依依賴的事務(wù)務(wù)時(shí)捕獲并并行執(zhí)行的的相同SQQL語(yǔ)句的的能力。捕獲的數(shù)據(jù)據(jù)在測(cè)試系系統(tǒng)上執(zhí)行行前先要做做一些處理理,這允許許DBA調(diào)調(diào)整負(fù)載重重放的頻率率,以及重重新映射到到不同用戶戶會(huì)話,不不同服務(wù)的的連接,或或-在OOraclle 111g RAAC測(cè)試系系統(tǒng)中重放放時(shí),是一一個(gè)或多個(gè)個(gè)數(shù)據(jù)庫(kù)實(shí)實(shí)例。在測(cè)試系統(tǒng)統(tǒng)上重放捕捕獲的經(jīng)過(guò)過(guò)處理過(guò)的的負(fù)載,測(cè)測(cè)試系統(tǒng)的的配置符合合p+1配配置的要求求,因此DDBA可以以準(zhǔn)確地判判斷任何系系統(tǒng)改變(包包括應(yīng)用程程序改變,軟軟件 HYPERLINK /z/auto/upda

11、te/index.html 補(bǔ)丁,甚至硬件件升級(jí))對(duì)對(duì)負(fù)載的影影響,測(cè)試試系統(tǒng)可以以是測(cè)試或或QA數(shù)據(jù)據(jù)庫(kù)環(huán)境,也也可以是一一個(gè)快照備備用數(shù)據(jù)庫(kù)庫(kù)(關(guān)于備備用數(shù)據(jù)庫(kù)庫(kù)后面的文文章有更多多的說(shuō)明)。執(zhí)行回歸分分析突出pp+0和pp+1模擬擬負(fù)載之間間的差異,DDBR會(huì)自自動(dòng)識(shí)別和和分析錯(cuò)誤誤回歸,數(shù)數(shù)據(jù)回歸和和SQL語(yǔ)語(yǔ)句回歸的的向量。數(shù)據(jù)庫(kù)重放放的美妙之之處是它消消除了創(chuàng)建建執(zhí)行回歸歸分析的模模擬負(fù)載的的必要性,相相反,DBBA可以準(zhǔn)準(zhǔn)確地執(zhí)行行記錄下來(lái)來(lái)的SQLL語(yǔ)句,因因此這傾向向于提供更更準(zhǔn)確的 系統(tǒng)回歸歸實(shí)況錄像像,因?yàn)槠淦渌獠恳蛞蛩兀ㄈ缇W(wǎng)網(wǎng)絡(luò)等待時(shí)時(shí)間)減少少了或沒(méi)有有了,所有有記

12、錄下來(lái)來(lái)的SQLL語(yǔ)句組成成了重放的的負(fù)載,實(shí)實(shí)際上看起起來(lái)幾乎不不會(huì)出現(xiàn)無(wú)無(wú)用的或很很 少執(zhí)行行的代碼,這這些代碼可可能會(huì)被忽忽略,如果果應(yīng)用程序序是在一個(gè)個(gè)RAC集集群數(shù)據(jù)庫(kù)庫(kù)環(huán)境中的的話這是很很關(guān)鍵的。本文接下來(lái)來(lái)的4小節(jié)節(jié)提供了數(shù)數(shù)據(jù)庫(kù)重放放功能的高高級(jí)入門指指南,實(shí)現(xiàn)現(xiàn)它們的通通用目標(biāo):在從p+0到p+1遷移一一個(gè)生產(chǎn)系系統(tǒng)時(shí)準(zhǔn)確確判斷需要要回歸到什什么程度,本本系列后面面的文章中中,我會(huì)介介紹如何利利用數(shù)據(jù)庫(kù)庫(kù)重放功能能捕獲、預(yù)預(yù)處理、重重放和分析析重放結(jié)果果。第一步:錄錄制負(fù)載Oraclle 111g企業(yè)管管理 HYPERLINK /keys/shujuku/index.html

13、 數(shù)據(jù)庫(kù)庫(kù)控制臺(tái)提提供了一個(gè)個(gè)非常直觀觀的管理數(shù)數(shù)據(jù)庫(kù)重放放功能的接接口,如啟啟用負(fù)載捕捕獲,預(yù)處處理,回歸歸分析等,每每一步它都都提供了良良好的狀態(tài)態(tài)反饋信息息,圖1顯顯示了初始始的數(shù)據(jù)庫(kù)庫(kù)重放控制制臺(tái)界面:(點(diǎn)擊查看看大圖)圖圖1:數(shù)據(jù)據(jù)庫(kù)重放控控制臺(tái)主界界面這一步看到到的全部負(fù)負(fù)載就是對(duì)對(duì)生產(chǎn)數(shù)據(jù)據(jù)庫(kù)捕獲和和錄制的內(nèi)內(nèi)容,DBBA只需要要保證在生生產(chǎn)系統(tǒng)上上有足夠的的負(fù)載,DDBR做了了其他所有有事情(捕捕獲所有外外部客戶端端發(fā)起執(zhí)行行的SQLL語(yǔ)句),這這包括:SQL查詢?cè)儯珼MLL語(yǔ)句和DDDL語(yǔ)句句。PL/SQQL塊和遠(yuǎn)遠(yuǎn)程過(guò)程調(diào)調(diào)用(RPPCs)。對(duì)象導(dǎo)航請(qǐng)請(qǐng)求和OCCI調(diào)用。注

14、意DBBS捕獲操操作執(zhí)行過(guò)過(guò)程中,OOraclle 111g不會(huì)停停止任何后后臺(tái)運(yùn)行中中的作業(yè),所所有內(nèi)部客客戶端也可可以繼續(xù)產(chǎn)產(chǎn)生請(qǐng)求。DBR通過(guò)過(guò)一系列影影子 HYPERLINK /z/windows/process/index.html 進(jìn)程記錄負(fù)負(fù)載,這些些影子進(jìn)程程過(guò)濾出必必要的信息息準(zhǔn)確地復(fù)復(fù)制系統(tǒng)負(fù)負(fù)載,最后后將這些元元數(shù)據(jù)寫入入一系列XXML文件件,后面重重放時(shí)就是是使用的這這些XMLL文件,OOraclle 111g DBBA只需要要關(guān)心文件件系統(tǒng)上是是否有足夠夠的存儲(chǔ)空空間來(lái)重放放這些XMML文件。第二步:“整理”負(fù)負(fù)載當(dāng)DBR負(fù)負(fù)載錄制完完畢后,在在重放前,總總是需要對(duì)對(duì)

15、其進(jìn)行一一些細(xì)微的的調(diào)整。例例如:重新新映射外部部客戶端的的連接,以以便在p+1環(huán)境中中能準(zhǔn)確地地重放,在在這一步中中,DBRR為它最后后重放準(zhǔn)備備具體的元元數(shù)據(jù),所所有影響重重放結(jié)果的的參數(shù)也是是在這一步步進(jìn)行修改改的。在相同數(shù)據(jù)據(jù)庫(kù)版本上上重放時(shí)這這個(gè)預(yù)處理理過(guò)程必須須存在,當(dāng)當(dāng)只要數(shù)據(jù)據(jù)庫(kù)版本匹匹配,就可可以在一個(gè)個(gè)生產(chǎn)、測(cè)測(cè)試或其他他數(shù)據(jù)庫(kù)系系統(tǒng)上執(zhí)行行擦除操作作,實(shí)際上上,Oraacle強(qiáng)強(qiáng)烈建議在在一個(gè)非生生產(chǎn) HYPERLINK /network/server/index.html 服務(wù)器器上執(zhí)行這這個(gè)元數(shù)據(jù)據(jù)的“整理理”操作,以以不影響生生產(chǎn)服務(wù)器器的性能或或健康為宜宜。第三步

16、:重重放負(fù)載負(fù)載已經(jīng)整整理好了,可可以啟動(dòng)重重放操作了了,完成元元數(shù)據(jù)擦除除后,選定定的DBRR重放客戶戶端就可以以隨需重放放負(fù)載了。復(fù)位測(cè)試環(huán)環(huán)境:在啟啟動(dòng)重放前前,DBAA首先必須須復(fù)位用于于測(cè)試的目目標(biāo)數(shù)據(jù)庫(kù)庫(kù)和主機(jī)環(huán)環(huán)境,因?yàn)闉樵趹?yīng)用改改變前,測(cè)測(cè)試服務(wù)器器的關(guān)鍵部部位需要與與生產(chǎn)服務(wù)務(wù)器匹配,否否則,可能能引發(fā)非預(yù)預(yù)期的回歸歸,幸運(yùn)的的是,隨 HYPERLINK /z/oracle_10g/index.html OOraclle 100g數(shù) 據(jù)據(jù)庫(kù)出現(xiàn)的的閃回?cái)?shù)據(jù)據(jù)庫(kù)(FLLASHBBACK DATAABASEE)特性幫幫助我們簡(jiǎn)簡(jiǎn)單完成這這個(gè)任務(wù),其其他可選的的包括通過(guò)過(guò)RMANN

17、恢復(fù)到一一個(gè)時(shí)間點(diǎn)點(diǎn),或使用用數(shù)據(jù)泵導(dǎo)導(dǎo)出導(dǎo)入,一一旦測(cè)試環(huán)環(huán)境正確地地復(fù)位完畢畢,接 下下來(lái),DBBA應(yīng)用所所有的改變變到測(cè)試服服務(wù)器上的的生產(chǎn)系統(tǒng)統(tǒng),使其現(xiàn)現(xiàn)在的狀態(tài)態(tài)變?yōu)閜+1,然后后傳送前面面捕獲的負(fù)負(fù)載給這個(gè)個(gè)p+1服服務(wù)器。通過(guò)重放驅(qū)驅(qū)動(dòng)重放負(fù)負(fù)載:當(dāng)在在p+1服服務(wù)器上最最后一次重重放前面捕捕獲的負(fù)載載時(shí),一個(gè)個(gè)叫做重放放驅(qū)動(dòng)的應(yīng)應(yīng)用程序向向目標(biāo)數(shù)據(jù)據(jù)庫(kù)系統(tǒng)發(fā)發(fā)送請(qǐng)求,因因?yàn)橹胤膨?qū)驅(qū)動(dòng)是客 戶端不可可知論的,對(duì)對(duì)Oraccle 111g而言言最初發(fā)送送請(qǐng)求的客客戶端類型型是沒(méi)有區(qū)區(qū)別的,重重放驅(qū)動(dòng)消消滅了錄制制的負(fù)載和和向p+11系統(tǒng)發(fā)送送請(qǐng)求的過(guò)過(guò)程,就象象是外部客客戶端發(fā)送送

18、的請(qǐng)求一一樣。因?yàn)樗鼘⒃谠谒兄胤欧趴蛻舳酥g分配所所有的負(fù)載載捕獲流,重重放驅(qū)動(dòng)可可能會(huì)考慮慮 HYPERLINK /tag/3838/index.html 網(wǎng)絡(luò)帶寬寬、 HYPERLINK /keys/cpu/index.html cpu和內(nèi)內(nèi)存容量,重重放驅(qū)動(dòng)也也可能充分分利用重新新映射連接接字串,使使它們建立立起一對(duì)一一(如單實(shí)實(shí)例到單實(shí)實(shí)例)或多多對(duì)一(如如單節(jié)點(diǎn)到到多個(gè)RAAC節(jié)點(diǎn))的的關(guān)系,意意味著連接接 HYPERLINK /z/network/fzjh/index.html 負(fù)載均衡衡可能需要要考慮,同同樣重要的的是,重放放驅(qū)動(dòng)會(huì)忽忽略最初由由外部客戶戶端產(chǎn)生的的活動(dòng)(如如

19、EM數(shù)據(jù)據(jù)庫(kù)控制),不不會(huì)重放這這種活動(dòng),同同時(shí),它還還會(huì)忽略通通過(guò) HYPERLINK /tag/1849/index.html 數(shù)據(jù)庫(kù)庫(kù)連接連接接到外部數(shù)數(shù)據(jù)庫(kù)或訪訪問(wèn)目錄對(duì)對(duì)象的活動(dòng)動(dòng)記錄。另一個(gè)使用用數(shù)據(jù)庫(kù)重重放吸引人人的優(yōu)點(diǎn)是是:可以同同步模式或或異步模式式重放捕獲獲的負(fù)載。在同步模模式下,每每一個(gè)事務(wù)務(wù)都按照錄錄制時(shí)的順順序準(zhǔn)確地地重放,然然而, DDBR也可可以異步重重放負(fù)載,如如不考慮事事務(wù)的同步步性,因此此可以產(chǎn)生生比錄制時(shí)時(shí)更大的負(fù)負(fù)載,這在在試圖執(zhí)行行一個(gè)“測(cè)測(cè)試到破壞壞”新的或或修改過(guò)的的數(shù)據(jù)庫(kù)環(huán)環(huán)境時(shí)特別別有 用。DBR負(fù)載載重放的范范圍:Orraclee 11ggR

20、1數(shù)據(jù)據(jù)庫(kù)重放功功能可以準(zhǔn)準(zhǔn)確地評(píng)估估下面幾類類對(duì)數(shù)據(jù)庫(kù)庫(kù)環(huán)境的改改變。數(shù)據(jù)庫(kù)升級(jí)級(jí)數(shù)據(jù)庫(kù)打補(bǔ)補(bǔ)丁改變數(shù)據(jù)庫(kù)庫(kù)模式改變初始化化參數(shù)修改一個(gè)或或多個(gè)RAAC節(jié)點(diǎn)及及其內(nèi)連配配置操作系統(tǒng)平平臺(tái)的概念念,包括從從32位轉(zhuǎn)轉(zhuǎn)移到644位改變服務(wù)器器內(nèi)存或ccpu配置置改變數(shù)據(jù)庫(kù)庫(kù)的存儲(chǔ)配配置,包括括在文件系系統(tǒng)(如eext3,ntfss)、ASSM存儲(chǔ)、和/或RRAW存儲(chǔ)儲(chǔ)之間遷移移數(shù)據(jù)庫(kù)文文件DBR負(fù)載載重放限制制:數(shù)據(jù)庫(kù)庫(kù)重放模擬擬能力有一一些顯著的的(且合理理的)限制制:SQL*LLoadeer直接路路徑裝入不不能重放,常常規(guī)路徑SSQL*LLoadeer操作可可以重放導(dǎo)入導(dǎo)出操操作,不管管是通

21、過(guò)傳傳統(tǒng)的方式式還是數(shù)據(jù)據(jù)泵的方式式,都不能能重放Oraclle共享服服務(wù)器會(huì)話話不能跟蹤蹤閃回?cái)?shù)據(jù)庫(kù)庫(kù)恢復(fù)和FFlashhbackk查詢操作作不能重放放Oraclle數(shù)據(jù)流流,包括非非基于PLL/SQLL的高級(jí)查查詢,不能能重放分布式事務(wù)務(wù)處理,包包括遠(yuǎn)程CCOMMIIT操作,只只能當(dāng)作本本地事務(wù)重重放基于Oraacle調(diào)調(diào)用接口(OOCI)對(duì)對(duì)象導(dǎo)航不不能重放對(duì)于大多數(shù)數(shù)部分,這這些限制有有意義,例例如:閃回回?cái)?shù)據(jù)庫(kù)本本質(zhì)上是一一個(gè)不完全全的數(shù)據(jù)庫(kù)庫(kù)恢復(fù)操作作,因此它它不是正常常事務(wù)處理理的范疇,我我也不會(huì)考考慮它是否否會(huì)使性能能倒退,雖雖然限制對(duì)對(duì)于共享服服務(wù)器會(huì)話話有意義,但但仍然有一

22、一些數(shù)據(jù)庫(kù)庫(kù)是使用共共享服務(wù)器器作為連接接池的,因因此這是一一個(gè)小小的的遺憾。第四步:回回歸分析負(fù)載重放完完畢后,數(shù)數(shù)據(jù)庫(kù)重放放將提供多多個(gè)有關(guān)在在p+1環(huán)環(huán)境和p+0環(huán)境下下負(fù)載性能能不同的分分析,正如如我在本文文最前面提提到的,任任何好的回回歸測(cè)試套套件都有能能力捕獲和和分析性能能回歸、數(shù)數(shù)據(jù)回歸和和錯(cuò)誤回歸歸,DBRR在這些方方面沒(méi)有讓讓我們失望望。例如:DBBR能夠通通過(guò)它的一一套捕獲重重放報(bào)告立立即檢測(cè)到到任何性能能差異,通通過(guò)這些報(bào)報(bào)告,可以以下鉆到存存儲(chǔ)在ADDDM(自自動(dòng)數(shù)據(jù)庫(kù)庫(kù)診斷監(jiān)視視器)、AAWR(自自動(dòng)負(fù)載倉(cāng)倉(cāng)庫(kù))和活活動(dòng)會(huì)話歷歷史(ASSH)報(bào)告告中更詳細(xì)細(xì)的分析。無(wú)

23、論問(wèn)題出出自哪里,DDBR都能能識(shí)別并處處理下列兩兩種類型的的問(wèn)題:聯(lián)機(jī)問(wèn)題象象征DBRR可能做了了一些誤操操作,應(yīng)該該先暫停,否否則重放的的結(jié)果變得得沒(méi)什么意意義脫機(jī)問(wèn)題實(shí)實(shí)際上是數(shù)數(shù)據(jù)庫(kù)重放放操作成功功的預(yù)期結(jié)結(jié)果,這種種類型的問(wèn)問(wèn)題通常是是在重放操操作結(jié)束后后被檢測(cè)到到的下一步理論知識(shí)具具備了,在在本系列的的下一篇文文章中,我我將闡述:在Oraccle 111gR11數(shù)據(jù)庫(kù)單單實(shí)例上捕捕獲一個(gè)簡(jiǎn)簡(jiǎn)單的負(fù)載載預(yù)處理捕獲獲的負(fù)載在一個(gè)雙節(jié)節(jié)點(diǎn)的Orraclee 11ggR1 RRAC集群群數(shù)據(jù)庫(kù)上上重放預(yù)處處理過(guò)的負(fù)負(fù)載標(biāo)識(shí)出在轉(zhuǎn)轉(zhuǎn)移到類型型目標(biāo)環(huán)境境過(guò)程中可可能出現(xiàn)的的問(wèn)題Oraclle

24、111gR1提提供了捕獲獲生產(chǎn)環(huán)境境中應(yīng)用程程序的負(fù)載載,并在測(cè)測(cè)試環(huán)境中中重放負(fù)載載的能力,利利用這種技技術(shù)判斷當(dāng)當(dāng)對(duì)系統(tǒng)、 HYPERLINK /keys/shujuku/index.html 數(shù)據(jù)庫(kù)或應(yīng)應(yīng)用程序修修改后在性性能方面的的影響有多多大,在本本文中,我我將描述OOraclle 111g數(shù)據(jù)庫(kù)庫(kù)重放功能能如何從當(dāng)當(dāng)前的生產(chǎn)產(chǎn)數(shù)據(jù)庫(kù)中中(p+00環(huán)境)捕捕獲和準(zhǔn)備備負(fù)載,以及如何在在一個(gè)Orraclee 11gg測(cè)試環(huán)境境(作為下下一個(gè)p+1數(shù)據(jù)庫(kù)庫(kù)系統(tǒng))重重放相同的的負(fù)載,這這種技術(shù)使使Oraccle DDBA有機(jī)機(jī)會(huì)分析和和隔離對(duì)性性能有害的的改變。 這篇文章主主要集中講講述如

25、何:從一個(gè)OOraclle 111g數(shù)據(jù)庫(kù)庫(kù)捕獲一個(gè)個(gè)真實(shí)的負(fù)負(fù)載捕獲獲對(duì)應(yīng)的自自動(dòng)負(fù)載倉(cāng)倉(cāng)庫(kù)(AWWR)數(shù)據(jù)據(jù)為最后后的負(fù)載重重放準(zhǔn)備測(cè)測(cè)試數(shù)據(jù)庫(kù)庫(kù)環(huán)境傳傳輸生產(chǎn)環(huán)環(huán)境 HYPERLINK /z/sys/safe-seting/index.html 配置到測(cè)試試環(huán)境預(yù)預(yù)處理生產(chǎn)產(chǎn)負(fù)載在在測(cè)試系統(tǒng)統(tǒng)上重放負(fù)負(fù)載分析析發(fā)現(xiàn)的任任何性能問(wèn)問(wèn)題和分歧歧模擬應(yīng)用程程序環(huán)境本文中關(guān)于于我的測(cè)試試環(huán)境有一一點(diǎn)需要說(shuō)說(shuō)明:為了了簡(jiǎn)化過(guò)程程,捕獲和和重放操作作都使用相相同的數(shù)據(jù)據(jù)庫(kù)。我使使用的是最最基本的OOraclle 111g種子數(shù)數(shù)據(jù)庫(kù)和默默認(rèn)安裝的的樣本方案案。數(shù)據(jù)庫(kù)庫(kù)將運(yùn)行在在帶閃回日日志功能的的A

26、RCHHIVELLOG模式式下,以便便需要重放放時(shí)可以快快速地利用用FLASSHBACCK DAATABAASE命令令回退到某某個(gè)初始點(diǎn)點(diǎn)。第一階段:錄制負(fù)載載為了建立立一個(gè)捕獲獲/重放情情景,我建建立了一個(gè)個(gè)新用戶、表、索引引和相關(guān)的的PL/SSQL對(duì)象象:一個(gè)新用用戶ADMMIN,它它將被用作作存儲(chǔ)所有有管理對(duì)象象的一個(gè)倉(cāng)倉(cāng)庫(kù),同時(shí)時(shí),我還創(chuàng)創(chuàng)建了一個(gè)個(gè)表存儲(chǔ)主主鍵的值。創(chuàng)建該用用戶和表的的代碼請(qǐng)參參考附件AA:ADMMINSeetup.sql。PL/SSQL包AADMINN.PKGG_SEQQUENCCING控控制指定新新的主鍵值值,該包的的說(shuō)明參考考附件B:pkg_sequuencii

27、ng.sspc,該該包最初的的版本內(nèi)容容參考附件件C:pkkg_seequenncingg_v1.bdy。另一個(gè)用用戶AP,它它將封裝一一個(gè)帳戶支支付系統(tǒng)的的方案,包包括新的表表AP.VVENDOORS,AAP.INNVOICCES和AAP.INNVOICCE_ITTEMS,創(chuàng)創(chuàng)建這個(gè)方方案及其相相關(guān)的對(duì)象象腳本參考考附件D:APSeetup.sql。為了填充充AP方案案的對(duì)象,我我創(chuàng)建了一一個(gè)包APP.PKGG_LOAAD_GEENERAATOR,它它的說(shuō)明文文件和主體體文件分別別參考附件件E:pkkg_looad_ggenerratorr.spcc和附件FF:pkgg_loaad_geen

28、eraator.bdy。最后,AAPIniitiallizattion.sql中中的代碼用用幾百行模模擬數(shù)據(jù)填填充了表AAP.VEENDORRS,并在在表AP.INVOOICESS中創(chuàng)建了了 25條條發(fā)票記錄錄,在表AAP.INNVOICCE_ITTEMS中中創(chuàng)建了與與之對(duì)應(yīng)的的發(fā)票詳細(xì)細(xì)信息條目目,收集了了ADMIIN和APP方案下所所有對(duì)象的的原始統(tǒng)計(jì)計(jì)信息,它它還 創(chuàng)建建了一個(gè)目目錄對(duì)象DDBRCoontrool,用于于數(shù)據(jù)庫(kù)重重放時(shí)存儲(chǔ)儲(chǔ)結(jié)果腳本本和捕獲負(fù)負(fù)載期間產(chǎn)產(chǎn)生的XMML文件。建立一個(gè)負(fù)負(fù)載捕獲至此,我們們的源數(shù)據(jù)據(jù)庫(kù)環(huán)境初初始化好了了,我將啟啟動(dòng)一個(gè)真真實(shí)的負(fù)載載捕獲,下下面

29、的圖22.1.11顯示了數(shù)數(shù)據(jù)庫(kù)重放放的初始窗窗口,它是是通過(guò)訪問(wèn)問(wèn)EM數(shù)據(jù)據(jù)庫(kù)控制軟軟件的【軟軟件和支持持】標(biāo)簽上上的【真正正應(yīng)用程序序測(cè)試】小小節(jié)下的【數(shù)數(shù)據(jù)庫(kù)鏈接接】得到的的。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.1:負(fù)載載捕獲設(shè)置置:初始化化界面如果我選擇擇了第一個(gè)個(gè)任務(wù),在在我的捕獲獲會(huì)話執(zhí)行行前必須先先確認(rèn)所有有在檢查列列表中列出出的先決條條件都已具具備才行。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.2:負(fù)載載捕獲設(shè)置置:計(jì)劃環(huán)環(huán)境檢查列列表接下來(lái)的界界面讓我選選擇在正式式捕獲負(fù)載載之前是否否重啟數(shù)據(jù)據(jù)庫(kù),并過(guò)過(guò)濾不需要要的會(huì)話活活動(dòng)(如EEM本身),注注意我會(huì)按按照Ora

30、acle 11g的的最佳實(shí)踐踐建議“清清除捕獲”:我會(huì)接接受EM的的建議停止止并重啟數(shù)數(shù)據(jù)庫(kù)以建建立一個(gè)有有效的捕獲獲啟動(dòng)時(shí)間間。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.3:負(fù)載載捕獲設(shè)置置:選項(xiàng)接下來(lái)的界界面顯示的的是給捕獲獲會(huì)話命名名和指定存存儲(chǔ)重放腳腳本的目錄錄。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.4:負(fù)載載捕獲設(shè)置置:設(shè)置參參數(shù)接下來(lái)要求求為任務(wù)調(diào)調(diào)度命名,圖圖2.1.5和圖22.1.66顯示了最最終的任務(wù)務(wù)確認(rèn)設(shè)置置界面。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.5:負(fù)載載捕獲設(shè)置置:指定EEM任務(wù)名名點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.6:負(fù)載載捕獲設(shè)置置:最

31、終的的任務(wù)視圖圖最后,Orraclee 11gg請(qǐng)求最后后一次確認(rèn)認(rèn)。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.1.7:負(fù)載載捕獲設(shè)置置:任務(wù)提提交捕獲就啟動(dòng)動(dòng)了,只要要Oraccle 111g顯示示這個(gè)屏幕幕,它實(shí)際際上是等我我再次在源源數(shù)據(jù)庫(kù)上上啟動(dòng)代表表性的負(fù)載載。捕獲一個(gè)真真實(shí)的負(fù)載載為了通過(guò)不不同用戶模模擬相似代代碼的并行行執(zhí)行過(guò)程程,我準(zhǔn)備備了一個(gè)簡(jiǎn)簡(jiǎn)單的shhell腳腳本(參考考附錄G:RanddomLooadGeeneraator.sh),它它做一些 HYPERLINK /keys/cpu/index.html CCPU密 集型計(jì)算算的簡(jiǎn)單查查詢,在AAP方案上上產(chǎn)生的查查詢,同

32、時(shí)時(shí)在AP方方案的表中中插入上千千行記錄,我我已經(jīng)將我我的源數(shù)據(jù)據(jù)庫(kù)環(huán)境配配置為使用用多個(gè)服務(wù)務(wù)名,每一一個(gè)對(duì)應(yīng)一一種用 戶戶,內(nèi)容參參考附錄HH:SI_Servvicess_tnssnamees.orra,我將將這些服務(wù)務(wù)名添加到到我的數(shù)據(jù)據(jù)庫(kù)配置文文件TNSSNAMEES.ORRA中作為為可選的 連接別名名。我在我的pp+0數(shù)據(jù)據(jù)庫(kù)環(huán)境中中啟動(dòng)了這這個(gè)負(fù)載,執(zhí)執(zhí)行完畢后后,我回到到EM數(shù)據(jù)據(jù)庫(kù)控制臺(tái)臺(tái)查看執(zhí)行行的結(jié)果,如如圖2.22.1所示示,然后點(diǎn)點(diǎn)擊“停止止捕獲”按按鈕結(jié)束負(fù)負(fù)載捕獲。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.2.1:負(fù)載載捕獲:回回顧捕獲任任務(wù)狀態(tài)這時(shí),Orraclee

33、 11gg會(huì)要求你你確認(rèn)是否否結(jié)束捕獲獲過(guò)程,并并顯示一個(gè)個(gè)計(jì)時(shí)表直直到捕獲完完成。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.2.2:負(fù)載載捕獲:確確定終止捕捕獲點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.2.3:負(fù)載載捕獲:結(jié)結(jié)束捕獲當(dāng)終止捕獲獲后,Orraclee 11gg會(huì)詢問(wèn)是是否捕獲錄錄制的負(fù)載載對(duì)應(yīng)的自自動(dòng)負(fù)載倉(cāng)倉(cāng)庫(kù)(AWWR)數(shù)數(shù)據(jù),如圖圖2.2.4所示,我我選擇了捕捕獲所有有有關(guān)的AWWR快照,以以便于后面面進(jìn)行報(bào)告告對(duì)比。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.2.4:負(fù)載載捕獲:請(qǐng)請(qǐng)求生成AAWR快照照一旦捕獲結(jié)結(jié)束,就可可以查看捕捕獲結(jié)果看看捕獲是否否成功,以以及是否包包含了足

34、夠夠的數(shù)據(jù),如如果發(fā)現(xiàn)數(shù)數(shù)據(jù)不足,F(xiàn)FLASHHBACKK DATTABASSE命令允允許我回到到捕獲開始始前的數(shù)據(jù)據(jù)庫(kù)狀態(tài)再再重新開始始捕獲,我我也選擇了了“查看負(fù)負(fù)載捕獲報(bào)報(bào)告”按鈕鈕生成一個(gè)個(gè)完整的數(shù)數(shù)據(jù)庫(kù)捕獲獲報(bào)告(報(bào)報(bào)告鏈接: htttp:/img/20088/05/PCW_Repoort_11.htmml)。第二階段:準(zhǔn)備重放放盡管在p+0數(shù)據(jù)庫(kù)庫(kù)環(huán)境中成成功完成了了一個(gè)足夠夠的數(shù)據(jù)庫(kù)庫(kù)負(fù)載捕獲獲,當(dāng)在pp+1環(huán)境境中重放負(fù)負(fù)載之前還還有許多事事情要做。復(fù)位p+00環(huán)境因?yàn)槲业脑丛春湍繕?biāo)環(huán)環(huán)境是同一一個(gè)數(shù)據(jù)庫(kù)庫(kù),因此首首先我需要要將環(huán)境復(fù)復(fù)位到捕獲獲負(fù)載之前前的狀態(tài),我我的數(shù)據(jù)庫(kù)庫(kù)

35、工作在閃閃回日志模模式,因此此我只需要要使用FLLASHBBACK DATAABASEE命令將其其回退到初初始狀態(tài):$ rmman ttargeet /RRMAN shuutdowwn immmediiate;RMANN sttartuup moount;RMANN reeset dataabasee to incaarnattion 6;RMMAN flasshbacck daatabaase tto sccn= 441629947;轉(zhuǎn)移到p+1環(huán)境接下來(lái),我我要做的是是應(yīng)用必要要的改變,將將我的數(shù)據(jù)據(jù)庫(kù)環(huán)境轉(zhuǎn)轉(zhuǎn)到p+11狀態(tài),簡(jiǎn)簡(jiǎn)單說(shuō)明一一下,我將將做兩個(gè)改改變,它們們對(duì)p+11環(huán)境的性性

36、能有顯著著的影響:對(duì)存儲(chǔ)過(guò)程程ADMIIN.PKKG_SEEQUENNCINGG.NEXXT_IDD做了特殊殊處理,使使用序列代代替了表AADMINN.NEXXT_IDDS來(lái)確定定 AP方方案中表的的下一個(gè)主主鍵值,這這應(yīng)該會(huì)顯顯著提升存存儲(chǔ)過(guò)程AAP.PKKG_LOOAD_GGENERRATORR.RANNDOMDDML的性性能,在重重放過(guò)程中中,它在 AP.IINVOIICES和和AP.IINVOIICE_IITEMSS表中創(chuàng)建建隨機(jī)數(shù)據(jù)據(jù)項(xiàng)目。刪除了在AAP.INNVOICCES.CCUSTOOMER_ID上的的索引,并并重新計(jì)算算了AP方方案的統(tǒng)計(jì)計(jì)數(shù)值,因因?yàn)榇鎯?chǔ)過(guò)過(guò)程 APP.PK

37、GG_LOAAD_GEENERAATOR.RANDDOMQUUERY在在視圖APP.RV_INVOOICE_DETAAILS上上產(chǎn)生隨機(jī)機(jī)查詢時(shí)經(jīng)經(jīng)常使用這這個(gè)索 引引高效地選選擇行,在在重放時(shí)應(yīng)應(yīng)該看到性性能會(huì)如預(yù)預(yù)期那樣顯顯著回退?!罢怼必?fù)負(fù)載至此,我的的p+1工工作環(huán)境搭搭建好了,可可以開始為為重放做一一下負(fù)載預(yù)預(yù)處理了,再再說(shuō)一次,我我會(huì)使用EEM數(shù)據(jù)庫(kù)庫(kù)控制臺(tái)啟啟動(dòng)預(yù)處理理序列,圖圖2.3.1顯示了了從“數(shù)據(jù)據(jù)庫(kù)重放”面板選擇擇了“預(yù)處處理負(fù)載”后的結(jié)果果。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.3.1:預(yù)處處理捕獲的的負(fù)載:選選擇一個(gè)捕捕獲的負(fù)載載當(dāng)我選擇了了想要的負(fù)負(fù)載后,OO

38、raclle 111g會(huì)提醒醒我是在同同一個(gè)數(shù)據(jù)據(jù)庫(kù)版本上上進(jìn)行數(shù)據(jù)據(jù)庫(kù)重放.點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.3.2:預(yù)處處理捕獲的的負(fù)載:數(shù)數(shù)據(jù)庫(kù)版本本警告然后啟動(dòng)一一個(gè)新的EEM調(diào)度任任務(wù)完成預(yù)預(yù)處理。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.3.3:預(yù)處處理捕獲的的工作量:調(diào)度預(yù)處處理任務(wù)Oraclle 111g提示要要進(jìn)行最后后的確認(rèn),以以提交調(diào)度度任務(wù),然然后開始執(zhí)執(zhí)行。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.3.4:預(yù)處處理捕獲的的負(fù)載:最最后確認(rèn)第三階段:重放負(fù)載載因?yàn)槲业哪磕繕?biāo) HYPERLINK /keys/shujuku/index.html 數(shù)據(jù)庫(kù)庫(kù)已經(jīng)復(fù)位位到捕獲

39、負(fù)負(fù)載之前的的狀態(tài)了,并并且我所有有的p+11改動(dòng)現(xiàn)在在已經(jīng)準(zhǔn)備備就緒,至至少我已經(jīng)經(jīng)準(zhǔn)備好負(fù)負(fù)載重放了了,我將使使用EM控控制臺(tái)進(jìn)行行重放,如如圖2.44.1所示示:點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.1:負(fù)載載重放:起起點(diǎn)我選擇了一一個(gè)包含有有捕獲負(fù)載載文件的目目錄后,OOraclle 111g會(huì)確認(rèn)認(rèn)我已經(jīng)檢檢查過(guò)成功功重放所要要求的先決決條件,包包括處理之之前需要解解決的外部部引用(如如外部文件件和外部目目錄),如如圖2.44.2和22.4.33所示: 點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.2:負(fù)載載重放:確確認(rèn)先決條條件點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.3:負(fù)

40、載載重放:確確認(rèn)對(duì)外部部系統(tǒng)的引引用一旦所有的的先決條件件都得到確確認(rèn)了,可可以開始真真實(shí)地執(zhí)行行重放任務(wù)務(wù)了,圖22.4.44顯示了我我設(shè)置的關(guān)關(guān)于這個(gè)任任務(wù)的基本本信息:點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.4:負(fù)載載重放:設(shè)設(shè)置重放任任務(wù)圖2.4.5顯示我我重新映射射當(dāng)前的連連接以便重重放時(shí)也可可以使用它它。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.5:負(fù)載載重放:設(shè)設(shè)置連接字字符串正如我在數(shù)數(shù)據(jù)庫(kù)重放放入門那篇篇文章中描描述的,OOraclle 111g允許我我改變重放放負(fù)載的頻頻率,為了了保持簡(jiǎn)潔潔,我選擇擇了默認(rèn)的的選項(xiàng),如如圖2.44.6所示示:點(diǎn)擊查看大大圖(點(diǎn)擊查看看

41、大圖)圖圖2.4.6:負(fù)載載重放:自自定義重放放選項(xiàng)現(xiàn)在可以啟啟動(dòng)負(fù)載重重放客戶端端(WRCC)開始重重放之前捕捕獲的負(fù)載載了,如圖圖2.4.7展示的的那樣。接接下來(lái),我我用適當(dāng)?shù)牡膮?shù)啟動(dòng)動(dòng)WRC,然然后返回這這個(gè)屏幕選選擇“下一一步”按鈕鈕開始自動(dòng)動(dòng)重放負(fù)載載。點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.7:負(fù)載載重放:?jiǎn)?dòng)負(fù)載重重放客戶端端我將打開一一個(gè)終端啟啟動(dòng)重放會(huì)會(huì)話,啟動(dòng)動(dòng)WRC客客戶端執(zhí)行行,注意在在開始之前前,我將當(dāng)當(dāng)前的工作作目錄修改改為/hoome/ooraclle/DBBRConntroll。$ wwrc ssysteem/orracleeorccl moode=rr

42、eplaay reeplayydir=.Worrkloaad Reeplayy Cliient: Relleasee .0 - Prroducctionn on Thu May 22 119:288:59 20088Copyyrighht (cc) 19982, 20077, Orraclee. AAll rrightts reeservved.WWait for the repllay tto sttart (19:28:559).回到EM數(shù)數(shù)據(jù)庫(kù)控制制臺(tái),我只只需要點(diǎn)擊擊“下一步步”按鈕,OOraclle11gg會(huì)回答我我所有活動(dòng)動(dòng)的數(shù)據(jù)庫(kù)庫(kù)重放操作作都在控制制之中。點(diǎn)擊查

43、看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.8:負(fù)載載重放:控控制重放操操作同時(shí)也反應(yīng)應(yīng)到終端會(huì)會(huì)話本身中中了:Wait for the repllay tto sttart (19:28:559).Repplay starrted (19:31:117)返回EM數(shù)數(shù)據(jù)庫(kù)控制制臺(tái),數(shù)據(jù)據(jù)庫(kù)重放操操作始終都都被監(jiān)視著著。 點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.9:負(fù)載載重放:監(jiān)監(jiān)視活動(dòng)的的重放操作作直到重放操操作完成。 Waitt forr thee repplay to sstartt (199:28:59).Reeplayy staartedd (199:31:17)RReplaay fii

44、nishhed (19:337:022)點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.4.10:負(fù)負(fù)載重放:完成的重重放操作第四階段:回歸分析析Oraclle 111g給我們們提供了許許多用于對(duì)對(duì)比捕獲的的與重放的的負(fù)載,如如圖2.55.1和22.5.22所示,重重放操作成成功執(zhí)行完完畢后會(huì)提提供大部分分對(duì)比結(jié)果果:點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.5.1:重放放回歸分析析(一)點(diǎn)擊查看大大圖(點(diǎn)擊查看看大圖)圖圖2.5.2:重放放回歸分析析(二)正如這些圖圖示,我對(duì)對(duì)數(shù)據(jù)庫(kù)對(duì)對(duì)象所做的的改動(dòng)產(chǎn)生生了正面的的影響,因因?yàn)閳?zhí)行捕捕獲的負(fù)載載的時(shí)間比比重放同一一負(fù)載的時(shí)時(shí)間要長(zhǎng)得得多,同時(shí)時(shí)表明對(duì)

45、系系統(tǒng)的修改改明顯增加加 了數(shù)據(jù)據(jù)庫(kù)的吞吐吐量,最值值得注意的的是這里沒(méi)沒(méi)有產(chǎn)生有有害的影響響,這從圖圖2.5.2中很容容易看出來(lái)來(lái),因?yàn)樵谠诋a(chǎn)生的數(shù)數(shù)據(jù)之間絕絕對(duì)沒(méi)有分分歧,也沒(méi)沒(méi)有異常錯(cuò)錯(cuò)誤產(chǎn)生。報(bào)告分析最后,數(shù)據(jù)據(jù)庫(kù)重放提提供了多個(gè)個(gè) HYPERLINK /keys/html/index.html HTMLL格式的報(bào)報(bào)告用于分分析執(zhí)行完完畢的重放放操作結(jié)果果。DB Reeplayy Repport這個(gè)報(bào)報(bào)告比較捕捕獲負(fù)載和和重放負(fù)載載的執(zhí)行過(guò)過(guò)程,它查查找任何可可能的數(shù)據(jù)據(jù)或錯(cuò)誤回回歸的源。AWR RReporrt這這個(gè)報(bào)告提提供自動(dòng)工工作負(fù)載信信息庫(kù)(AAWR)報(bào)報(bào)告,它簡(jiǎn)簡(jiǎn)要地分析析

46、了在重放放操作開始始到結(jié)束這這段時(shí)間周周期內(nèi)的數(shù)數(shù)據(jù)庫(kù)的整整體性能。ASH RReporrt它它通過(guò)查看看在重放期期間的活動(dòng)動(dòng)會(huì)話歷史史記錄(AASH)的的內(nèi)容,找找出對(duì)性能能影響最大大的SQLL語(yǔ)句和等等待事件。Oraclle數(shù)據(jù)庫(kù)庫(kù)11gRR1新的數(shù)數(shù)據(jù)庫(kù)重放放(DBRR)功能允允許Oraacle DBA從從一個(gè)Orraclee 10ggR2環(huán)境境捕獲負(fù)載載,然后在在Oraccle 111gR11環(huán)境中重重放這個(gè)負(fù)負(fù)載,以分分析如何將將現(xiàn)有數(shù)據(jù)據(jù)庫(kù)遷移到到新版本,并并分析對(duì)系系統(tǒng)整體性性能的影響響。這是本系列列最后一篇篇文章,將將描述如何何使用這些些特性從現(xiàn)現(xiàn)有的Orraclee 10gg

47、R2單實(shí)實(shí)例數(shù)據(jù)庫(kù)庫(kù)環(huán)境捕獲獲并預(yù)處理理負(fù)載,然然后在一個(gè)個(gè)Oraccle 111gR11 RACC測(cè)試環(huán)境境中重放同同樣的負(fù)載載。這給OOraclle DBBA提供了了一個(gè)史無(wú)無(wú)前例的機(jī)機(jī)會(huì)標(biāo)識(shí)出出在遷移到到RAC環(huán)環(huán)境時(shí)任何何潛在的性性能瓶頸。 前面的文章章描寫的是是一個(gè)相對(duì)對(duì)簡(jiǎn)單的場(chǎng)場(chǎng)景:如何何在當(dāng)前運(yùn)運(yùn)行Oraacle 11g生生產(chǎn)環(huán)境中中(p+00)捕獲一一個(gè)模擬的的應(yīng)用程序序負(fù)載,然然后在相同同的p+11環(huán)境重放放,這篇文文章處理稍稍微更有難難度一點(diǎn)的的任務(wù),因因?yàn)椋簭囊粋€(gè)單實(shí)實(shí)例Oraacle 10gRR2數(shù)據(jù)庫(kù)庫(kù)捕獲和記記錄應(yīng)用程程序負(fù)載,包包括對(duì)應(yīng)的的自動(dòng)工作作負(fù)載信息息庫(kù)(

48、AWWR)數(shù)據(jù)據(jù)。將模擬負(fù)載載轉(zhuǎn)移到OOraclle 111gR1 RAC測(cè)測(cè)試環(huán)境。預(yù)處理負(fù)載載,包括重重新映射到到不同 HYPERLINK /z/network/fzjh/index.html 負(fù)載載均衡服務(wù)務(wù)的連接。在Oraccle 111gR11 RACC測(cè)試環(huán)境境中重放負(fù)負(fù)載。標(biāo)識(shí)應(yīng)用程程序性能問(wèn)問(wèn)題,數(shù)據(jù)據(jù)分歧和錯(cuò)錯(cuò)誤分歧。我將使用OOraclle 111gR1提提供的PLL/SQLL包DBMMS_WOORKLOOAD_CCAPTUURE和DDBMS_WORKKLOADD_REPPLAY來(lái)來(lái)完整這些些任務(wù)。第一階段:錄制一個(gè)個(gè)單實(shí)例環(huán)環(huán)境下的負(fù)負(fù)載為了使捕獲獲和重放情情景簡(jiǎn)單 -

49、同同時(shí)因?yàn)槲椅彝春蘩速M(fèi)費(fèi)任何有用用的東西 - 我我將使用前前面文章中中使用的PPL/SQQL對(duì)象來(lái)來(lái)完成在單單實(shí)例Orraclee 10ggR2上的的負(fù)載捕獲獲,因?yàn)椴恫东@負(fù)載要要求最低的的Oraccle100gR2版版本是100.2.00.4,首首先我使用用數(shù)據(jù)庫(kù)升升級(jí)助手(DDBUA)將將現(xiàn)有數(shù)據(jù)據(jù)庫(kù)(名 叫DB110G)升升級(jí)到100.2.00.4,在在我的Orraclee 10ggR2生產(chǎn)產(chǎn)環(huán)境中花花了30分分鐘來(lái)升級(jí)級(jí),中間很很順利。然后我執(zhí)行行同樣的腳腳本和PLL/SQLL代碼創(chuàng)建建并啟動(dòng)一一個(gè)合適的的環(huán)境用于于捕獲負(fù)載載。(具體體腳本和代代碼請(qǐng)參考考本系列前前面的文章章)準(zhǔn)備捕捕

50、獲負(fù)載: 現(xiàn)在我我們的源數(shù)數(shù)據(jù)庫(kù)環(huán)境境已經(jīng)就緒緒了,我將將啟動(dòng)一個(gè)個(gè)真實(shí)的負(fù)負(fù)載捕獲,LListiing 33.1(見見附件)顯顯示了我如如何使用存存儲(chǔ)過(guò)程DDBMS_WORKKLOADD_CAPPTUREE.ADDD_FILLTER應(yīng)應(yīng)用一些過(guò)過(guò)濾器來(lái)排排除那些產(chǎn)產(chǎn)生“不感感興趣” 活動(dòng)的用用戶會(huì)話以以及在捕獲獲過(guò)程中可可以忽略的的會(huì)話,在在本例中,我我比想捕獲獲EM控制制臺(tái)自身的的活動(dòng)。開始捕獲:Listting 3.2(見見附件)顯顯示了我是是如何使用用存儲(chǔ)過(guò)程程DBMSS_WORRKLOAAD_CAAPTURRE.STTART_CAPTTURE啟啟動(dòng)負(fù)載捕捕獲的,這這個(gè)存儲(chǔ)過(guò)過(guò)程首先

51、檢查目標(biāo)標(biāo)目錄(DDBRCOONTROOL)中是是否有以前前執(zhí)行負(fù)載載捕獲的文文件,如果果有,它會(huì)會(huì)返回一個(gè)個(gè)錯(cuò)誤,并并且不允許許捕獲繼續(xù)續(xù),然而,只只要捕獲啟啟動(dòng)成功, DB100G數(shù)據(jù)庫(kù)庫(kù)的警報(bào)日日志將會(huì)識(shí)識(shí)別出一個(gè)個(gè)DBR捕捕獲操作正正在進(jìn)行:. . .Mon Jun 23 119:400:41 20088ALTEER SYYSTEMM SETT pree_11gg_enaable_captture=TRUEE SCOOPE=BBOTH;Mon Jun 23 119:400:44 20088DBMSS_WORRKLOAAD_CAAPTURRE.STTART_CAPTTURE(): SSt

52、artting dataabasee cappturee at 06/223/20008 119:400:44. . . 因?yàn)槲艺谠谝粋€(gè)Orraclee 10ggR2數(shù)據(jù)據(jù)庫(kù)上捕獲獲,在開始始捕獲前,我我將動(dòng)態(tài)初初始化參數(shù)數(shù)PRE_11G_ENABBLE_CCAPTUURE設(shè)置置為TRUUE。生成成負(fù)載:為為了模擬不不同用戶相相似代碼的的并行執(zhí)行行,我準(zhǔn)備備一個(gè)shhell腳腳本(100gSI_RanddomLooadGeeneraator.sh),它它與本系列列前面文章章中的shhell腳腳本類似,它它啟動(dòng)大約約80個(gè)用用戶會(huì)話隨隨機(jī)執(zhí)行一一些簡(jiǎn)單的的 HYPERLINK /keys/cp

53、u/index.html CPU密集集型計(jì)算的的查詢,在在AP方案案上生成復(fù)復(fù)雜的查詢?cè)儯瑘?zhí)行往往AP方案案表中插入入幾千行數(shù)數(shù)據(jù)的DMML操作。同時(shí),我將將DB100G數(shù)據(jù)庫(kù)庫(kù) HYPERLINK /z/sys/safe-seting/index.html 配置為 只只使用一個(gè)個(gè)服務(wù)名(DDB10GG),不考考慮操作的的類型,并并且在我的的TNSNNAMESS.ORAA配置文件件中添加了了這個(gè)服務(wù)務(wù)名。(在在后面的步步驟中,在在Oraccle 111gR11 RACC環(huán)境中我我將描述如如何使用DDBMS_WORKKLOADD_REPPLAY.REMAAP_COONNECCTIONN重新映射射

54、這個(gè)連接接到不同的的服務(wù)名)暫停負(fù)載捕獲:為了暫停捕獲,我執(zhí)行存儲(chǔ)過(guò)程DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE停止負(fù)載捕獲操作(參考Listing 3.3,見附件),注意DBR捕獲成功的結(jié)論也會(huì)記錄在數(shù)據(jù)庫(kù)DB10G的警報(bào)日志中: . . .Monn Junn 23 19:442:211 20008Thrread 1 addvancced tto loog seequennce 443 (LLGWR swittch)CCurreent llog# 3 seeq# 443 meem# 00: /uu01/aapp/ooraclle/orradatta/dbb10g

55、/redoo03.llogMoon Juun 233 19:44:335 20008DBBMS_WWORKLLOAD_CAPTTURE.FINIISH_CCAPTUURE(): Sttoppeed daatabaase ccaptuure ssucceessfuully at 006/233/20008 199:44:32查看捕獲結(jié)結(jié)果:為了了查看負(fù)載載捕獲真實(shí)實(shí)的結(jié)果,我我執(zhí)行存儲(chǔ)儲(chǔ)過(guò)程DBBMS_WWORKLLOAD_CAPTTURE.REPOORT生成成一個(gè)摘要要報(bào)告(參參考 Liistinng 3.4,見附附件),這這個(gè)報(bào)告的的輸出文本本格式請(qǐng)查查看Repport 3.1(見見附件)或

56、或HTMLL格式(hhttp: /wwww.ddatabbasejjournnal.ccom/iimg/22008/06/DDB10GG_WorrkloaadCapptureeRepoort.hhtml)。第二階段:準(zhǔn)備重放放當(dāng)我成功地地完成從OOraclle10ggR2單實(shí)實(shí)例 HYPERLINK /keys/shujuku/index.html 數(shù)據(jù)庫(kù)庫(kù)上捕獲負(fù)負(fù)載后,開開始準(zhǔn)備我我的目標(biāo)環(huán)環(huán)境 - Oraacle111gR11 RACC集群數(shù)據(jù)據(jù)庫(kù):我 HYPERLINK /z/sys/safe-seting/index.html 配置了一一個(gè)雙節(jié)點(diǎn)點(diǎn)RAC(RRACNOODE1和和RA

57、CNNODE22),使用用使用Orraclee cluusterrwaree .0配配置和管理理集群環(huán)境境。我在集群中中每個(gè)節(jié)點(diǎn)點(diǎn)上部署了了一個(gè)Orraclee .0 ASM實(shí)實(shí)例,在共共享磁盤存存儲(chǔ)上為數(shù)數(shù)據(jù)庫(kù)文件件創(chuàng)建了兩兩個(gè)ASMM磁盤組+DATAA,+FRRA。我使用Orraclee 11ggR1的標(biāo)標(biāo)準(zhǔn)種子數(shù)數(shù)據(jù)庫(kù)模板板創(chuàng)建一個(gè)個(gè)新的RAAC數(shù)據(jù)庫(kù)庫(kù)RACDDB,部署署了兩個(gè)RRAC實(shí)例例RACDDB1和RRACDBB2,每個(gè)個(gè)節(jié)點(diǎn)上一一個(gè),通過(guò)過(guò)一個(gè)監(jiān)聽聽器提供服服務(wù)。我部署了一一個(gè)新的RRAC服務(wù)務(wù)TESTTLBA作作為這兩個(gè)個(gè)節(jié)點(diǎn)對(duì)外外提供的服服

58、務(wù),并將將連接數(shù)調(diào)調(diào)整為最大大,使用 HYPERLINK /z/network/fzjh/index.html 負(fù)負(fù)載均衡顧顧問(wèn)程序(LLBA)跨跨這兩個(gè)實(shí)實(shí)例分配連連接以模擬擬一個(gè)OLLTP環(huán)境境,Lisstingg 3.55(見附件件)顯示了了srvcctl命令令調(diào)用DBBMS_SSERVIICE.MMODIFFY_SEERVICCE和為TTESTLLBA服務(wù)務(wù)配置的TTNSNAAMES.ORA網(wǎng)網(wǎng)絡(luò)配置項(xiàng)項(xiàng)目。最后,我在在RACDDB集群數(shù)數(shù)據(jù)庫(kù)嚴(yán)格格地創(chuàng)建了了與之前在在DB100G數(shù)據(jù)庫(kù)庫(kù)上創(chuàng)建的的一樣的表表,索引和和PL/SSQL包。然后執(zhí)行行APInnitiaalizaationn

59、.sqll腳本初始始化表APP.VENNDORSS,AP.INVOOICESS和AP_INVOOICE_DETAAILS。準(zhǔn)備負(fù)載載:至此我我的數(shù)據(jù)庫(kù)庫(kù)重放目標(biāo)標(biāo)環(huán)境已經(jīng)經(jīng)就緒了,下下面為在RRAC環(huán)境境重放做最最后的準(zhǔn)備備的工作:在節(jié)點(diǎn)RAACNODDE1和RRACNOODE122上添加新新的目錄/homee/oraacle/DBRCContrrol。在RACDDB數(shù)據(jù)庫(kù)庫(kù)中創(chuàng)建一一個(gè)新的目目錄對(duì)象DDBRCOONTROOL,同時(shí)時(shí)在每個(gè)節(jié)節(jié)點(diǎn)上也在在其物理位位置創(chuàng)建了了響應(yīng)的目目錄,并給給這個(gè)目錄錄對(duì)象授予予了合適的的權(quán)限。我將在DBB10G數(shù)數(shù)據(jù)庫(kù)上捕捕獲負(fù)載時(shí)時(shí)產(chǎn)生的文文件分別復(fù)復(fù)制到

60、這兩兩個(gè)節(jié)點(diǎn)的的相同目錄錄下了,注注意也可以以將這些文文件只復(fù)制制到其中一一個(gè)節(jié)點(diǎn),因因?yàn)樵赗AAC集群環(huán)環(huán)境中,任任何一個(gè)節(jié)節(jié)點(diǎn)都可以以管理重放放負(fù)載。最后,我執(zhí)執(zhí)行存儲(chǔ)過(guò)過(guò)程DBMMS_WOORKLOOAD_RREPLAAY.PRROCESSS_CAAPTURRE為重放放對(duì)先前捕捕獲的負(fù)載載做預(yù)處理理工作,這這個(gè)存儲(chǔ)過(guò)過(guò)程解析在在DB100G數(shù)據(jù)庫(kù)庫(kù)上的用戶戶會(huì)話操作作,為在RRACDBB上重放做做預(yù)處理。Listiing 33.6(見見附件)顯顯示了我在在集群節(jié)點(diǎn)點(diǎn)上創(chuàng)建物物理目錄和和在RACCDB數(shù)據(jù)據(jù)庫(kù)中創(chuàng)建建對(duì)應(yīng)的目目錄對(duì)象的的命令,以以及(在將將所有文件件復(fù)制到合合適的物理理目錄

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論