RMAN轉(zhuǎn)移數(shù)據(jù)和EXP/IMP轉(zhuǎn)移數(shù)據(jù)實(shí)測(cè)比較
2024-07-21 02:34:08
供稿:網(wǎng)友
由于工程需要經(jīng)常將客戶的現(xiàn)場(chǎng)數(shù)據(jù)導(dǎo)出到公司的開發(fā)環(huán)境中,隨著客戶現(xiàn)場(chǎng)數(shù)據(jù)量的不斷增大,原先
使用的導(dǎo)出導(dǎo)入的方法需要花費(fèi)越來越長(zhǎng)的時(shí)間,所以測(cè)試一下RMAN的效率,驗(yàn)證是否能用恢復(fù)RMAN備
份的方法來代替以往的EXP/IMP方法。原本想過用傳輸表空間的方法,但是由于我們通常在創(chuàng)建數(shù)據(jù)庫(kù)的
時(shí)候就給業(yè)務(wù)所用的表空間創(chuàng)建了很大的數(shù)據(jù)文件,這樣在傳輸表空間的copy數(shù)據(jù)文件的步驟上會(huì)花費(fèi)
很長(zhǎng)的時(shí)間,所以還是決定測(cè)試一下RMAN了。
測(cè)試目的:
實(shí)現(xiàn)對(duì)于JHJKREC用戶的數(shù)據(jù)轉(zhuǎn)移。
在10.101.48.71機(jī)器上測(cè)試。
測(cè)試環(huán)境:
P42.8G單CPU,1G內(nèi)存,80G單硬盤,windows 2000 Server,Oracle817
跟JHJK用戶相關(guān)的數(shù)據(jù)文件的總共大小為:21.4G
其中JHJKREC用戶的對(duì)象總共大小為:2.1G
1。RMAN作full備份,用時(shí)20分鐘,生成文件大小5.47G
EXP作JHJKREC用戶數(shù)據(jù)導(dǎo)出,用時(shí)2分20秒,生成文件大小546M
2。RMAN作數(shù)據(jù)恢復(fù),用時(shí)23分鐘(包括restore數(shù)據(jù)文件,recover數(shù)據(jù)庫(kù))
IMP作JHJKREC用戶數(shù)據(jù)導(dǎo)入,用時(shí)55分鐘
3。RMAN備份在非歸檔模式下需要關(guān)閉數(shù)據(jù)庫(kù)然后啟動(dòng)數(shù)據(jù)庫(kù)到mount狀態(tài)
EXP在非歸檔模式下不需要關(guān)閉數(shù)據(jù)庫(kù),但是數(shù)據(jù)表本身是不一致的
結(jié)論:
利用RMAN備份的時(shí)間明顯長(zhǎng)于EXP的時(shí)間,備份出的文件也遠(yuǎn)大于EXP出的文件
但是恢復(fù)的時(shí)間卻要少于IMP所需要的時(shí)間。
利用RMAN恢復(fù),還需要備份控制文件,而且由于是非歸檔模式,還需要檢查當(dāng)前能夠恢復(fù)到的最大SCN,然后在SQLPLUS中recover database until change scn,然后再alter database open resetlogs,整個(gè)操作比EXP/IMP繁瑣,對(duì)于現(xiàn)場(chǎng)業(yè)務(wù)人員來說可能較為困難,所以使用RMAN還是使用導(dǎo)出導(dǎo)入作數(shù)據(jù)轉(zhuǎn)移,還是見仁見智吧。
以下為測(cè)試中RMAN和導(dǎo)出導(dǎo)入使用的命令,基本上沒有作任何優(yōu)化。
RMAN的備份腳本:
@@connect.rcv
# Backup up database at full level
#
shutdown immediate;
startup mount;
run{
allocate channel d1 type disk;
set limit channel d1 kbytes 2097150;
backup full database
format 'E:/rman_bak/dbfull_%d_%s_%p_%t'
tag='dbfull';
release channel d1;
}
alter database open;
exit;
RMAN的恢復(fù)腳本:
@@connect.rcv
shutdown immediate;
startup mount;
run {
sql "alter session set nls_date_language=AMERICAN";
sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
set until time '2004-9-7 15:30:00';
allocate channel ch1 type disk;
restore database;
release channel ch1;
}
exit;
EXP的腳本:
userid=jhjkrec/jhjkrec
file=e:/rman_bak/jhjkrec.dmp
owner=jhjkrec
direct=n
comPRess=n
feedback=1000
IMP的腳本:
userid=jhjkrec/jhjkrec
file=e:/rman_bak/jhjkrec.dmp
ignore=y
fromuser=jhjkrec
touser=jhjkrec
feedback=1000