在數(shù)據(jù)庫的遷移和升級(jí)場(chǎng)景中,我們經(jīng)常會(huì)遇到一個(gè)問題:在做壓力測(cè)試時(shí),如何模擬真實(shí)的業(yè)務(wù)壓力,解決這個(gè)問題的方法有很多,比如:應(yīng)用方開發(fā)模擬程序或者使用壓力測(cè)試工具模擬,如load runner,但是,如果要說哪種方法能最大限度地模擬真實(shí)業(yè)務(wù)壓力,我認(rèn)為還是Oracle的Database Replay(數(shù)據(jù)庫重放)功能,Database Replay功能是Real Application Testing的一部分,它的基本原理圖如下:

簡(jiǎn)單說,Database Replay可以在生產(chǎn)數(shù)據(jù)庫上“捕獲”負(fù)載(workload capture),保存成一定格式的二進(jìn)制文件。將保存的負(fù)載文件復(fù)制到測(cè)試環(huán)境,經(jīng)過一定的處理后,就可以在測(cè)試環(huán)境“重放”負(fù)載(workload replay),從而達(dá)到模擬真實(shí)壓力,進(jìn)行壓力測(cè)試的目的。

Database Replay是11g才有的特性,但是,負(fù)載的捕獲,支持10.2.0.4之后的數(shù)據(jù)庫,這一點(diǎn)也正好符合國內(nèi)很多客戶的需求,因?yàn)閲鴥?nèi)還有相當(dāng)一部分客戶,因?yàn)榉€(wěn)妥起見,系統(tǒng)還都一直運(yùn)行在10gR2版本的Oracle數(shù)據(jù)庫上,都有升級(jí)的需求。

Consolidated Database Replay 是11.2.0.2之后才出現(xiàn)的功能,字面意思是整合的數(shù)據(jù)庫重放,它可以將不同系統(tǒng)“捕獲”的負(fù)載,整合到一起重放,適用于數(shù)據(jù)庫整合測(cè)試和Scale-Up測(cè)試。

后面我們用實(shí)驗(yàn)來詳細(xì)介紹一下Database Replay的相關(guān)功能,實(shí)驗(yàn)采用10.2.0.5作為負(fù)載的捕獲端,用12.1.0.2作為負(fù)載的重放端。

準(zhǔn)備工作(安裝Database Replay相關(guān)補(bǔ)丁)

首先要根據(jù)文檔 Mandatory Patches for Database Testing Functionality for Current and Earlier Releases (Doc ID 560977.1),檢查該打的補(bǔ)丁是否打過了。捕獲端和重放端都要打。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式