目標:從生產資料庫PROD複製資料庫到測試資料庫TEST
環境:PROD/TEST資料庫已存在,PROD資料檔案在磁帶中;
一、編輯TEST資料庫pfile檔案;
刪除TEST資料庫所有資料檔案
su - oratest
cd /t02/oratest/testdata
rm *
編輯TEST資料庫啟動參數檔案
cd $Oracle_HOME/dbs
vi initTEST.ora
將db_name=TEST修改為db_name=PROD
新增一下設定
log_archive_format=PROD_%T%TS%S.arc(歸檔檔案,預設路徑為$ORACLE/HOME/dbs/arch)
二、建立資料庫檔案link
TEST環境和PROD環境的資料庫檔案地點不一致,使用RMAN恢複資料庫時需要繁瑣的把每個檔案都制定到新地點。簡化操作步驟,建立一個目錄連結,讓RMAN認為恢複到原來的PORD目錄;
su - oratest
mkdir /u01/oraprod
cd /u01/oraprod
ln -s /t02/oratest/testdata prodata (testdata連結到prodata)
ls -al 查看連結
三、恢複controlfile
將PROC資料庫controlfile檔案拷至/tmp目錄
cd /tmp
ftp -i 172.16.*.*
cd /u01/oraprod/prodata
get cntrl01.dbf
啟動資料庫到nomount狀態
export ORACLE_SID=TEST
sqlplus /nolog
conn / as sysdba
startup nomount
複製控制檔案(RMAN DB恢複工具)
rman target / nocatalog
RMAN>run{
allocate channel t1 type disk;
replicate controlfile from '/tmp/cntrl01.dbf';
release channel t1;
}
此時會在pfile指引的目錄和名字下建立三個controlfile檔案;
四、啟動資料庫到mount狀態
su - oratest
export ORACLE_SID=TEST
sqlplus /nolog
conn / as sysdba
alter database mount