rman數據遷移

環境:

備份數據庫

操作系統:oracle linux 6.3

IP地址:192.168.137.11

數據庫:Oracle 11.2.0.3.0

ORACLE_SID:normal

Global_name:normal


恢復數據庫

操作系統:oracle linux 6.3

IP地址:192.168.137.12

數據庫:Oracle 11.2.0.3.0

ORACLE_SID:normal


注意:上面恢復數據庫只安裝了數據庫軟件,沒有創建數據庫

-------------------------------------------------
--在備份前把rman中自動備份spfile和controlfile去了
-------------------------------------------------

--壓縮版本
rman target / nocatalog log /tmp/rman.log <<EOF
run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	sql 'alter system archive log current';
	backup as compressed backupset database format '/u01/app/oracle/backup/full_%d_%T_%s_%p';
	sql 'alter system archive log current';
	backup as compressed backupset archivelog all format '/u01/app/oracle/backup/arch_%d_%T_%s_%p' delete input;
	backup current controlfile format '/u01/app/oracle/backup/ctl_%d_%T_%s_%p';
	backup spfile format '/u01/app/oracle/backup/spfile_%d_%T_%s_%p';
	release channel c1;
	release channel c2;
}
EOF
--沒壓縮版本
rman target / nocatalog log /tmp/rman.log <<EOF
run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	sql 'alter system archive log current';
	backup database format '/u01/app/oracle/backup/full_%d_%T_%s_%p';
	sql 'alter system archive log current';
	backup archivelog all format '/u01/app/oracle/backup/arch_%d_%T_%s_%p' delete input;
	backup current controlfile format '/u01/app/oracle/backup/ctl_%d_%T_%s_%p';
	backup spfile format '/u01/app/oracle/backup/spfile_%d_%T_%s_%p';
	release channel c1;
	release channel c2;
}
EOF

--前提:在恢復機器上只安裝好數據庫軟件
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/backup
mkdir -p /u01/app/oracle/admin/normal/adump
mkdir -p /u01/app/oracle/oradata/normal

--創建密碼文件(在$ORACLE_HOME/dbs目錄下)
orapwd file=orapwnormal password=oracle entries=5

--在備份機上的備份文件如下
[oracle@normal backup]$ ll
total 861200
-rw-r----- 1 oracle oinstall  26749952 Aug 28 09:07 arch_NORMAL_20140828_10_1
-rw-r----- 1 oracle oinstall  96722432 Aug 28 09:07 arch_NORMAL_20140828_9_1
-rw-r----- 1 oracle oinstall   9830400 Aug 28 09:07 ctl_NORMAL_20140828_11_1
-rw-r----- 1 oracle oinstall 246669312 Aug 28 09:06 full_NORMAL_20140828_5_1
-rw-r----- 1 oracle oinstall 491855872 Aug 28 09:07 full_NORMAL_20140828_6_1
-rw-r----- 1 oracle oinstall   9830400 Aug 28 09:07 full_NORMAL_20140828_7_1	--rman自動備份的control file
-rw-r----- 1 oracle oinstall     98304 Aug 28 09:07 full_NORMAL_20140828_8_1	--rman自動備份的spfile
-rw-r----- 1 oracle oinstall     98304 Aug 28 09:07 spfile_NORMAL_20140828_12_1

--將備份的文件傳輸到 恢復庫
scp -r full_NORMAL_20140828_5_1 192.168.137.12:/u01/app/oracle/backup/
scp -r full_NORMAL_20140828_6_1 192.168.137.12:/u01/app/oracle/backup/
scp -r arch_NORMAL_20140828_9_1 192.168.137.12:/u01/app/oracle/backup/
scp -r arch_NORMAL_20140828_10_1 192.168.137.12:/u01/app/oracle/backup/
scp -r ctl_NORMAL_20140828_11_1 192.168.137.12:/u01/app/oracle/backup/
scp -r spfile_NORMAL_20140828_12_1 192.168.137.12:/u01/app/oracle/backup/ 

--通過rman將備份的spfile_NORMAL_20140828_12_1恢復到數據庫
rman target /
startup 			--報錯沒關係
restore spfile to '/u01/app/oracle/product/11.2.0/db_1/dbs/spfilenormal.ora' from '/u01/app/oracle/backup/spfile_NORMAL_20140828_12_1';

--啓動數據庫到nomount
sqlplus / as sysdba
shutdown immediate
startup nomount

--通過rman恢復備份的control file
restore controlfile from '/u01/app/oracle/backup/ctl_NORMAL_20140828_11_1';

--將數據庫打開到 mount 狀態
alter database mount;

--指定備份文件所在目錄 並且 掃描整個目錄的備份片或者歸檔日誌文件等
catalog start with '/u01/app/oracle/backup';

--restore數據庫
restore database;

--recover 數據庫(注意這一步要在sqlplus中做,直接使用recover database會報錯。如下:) 
RMAN> recover database; 

Starting recover at 2014-08-28 10:04:55
using channel ORA_DISK_1

starting media recovery

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 08/28/2014 10:04:56
ORA-01013: user requested cancel of current operation

--在sqlplus中進行恢復
sqlplus / as sysdba

SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile until cancel; 
ORA-00279: change 936469 generated at 08/28/2014 09:06:17 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/NORMAL/archivelog/2014_08_28/o1_mf_1_82_%u_.arc
ORA-00280: change 936469 for thread 1 is in sequence #82

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
 
--由於沒有redo log,所以我們需要使用resetlogs 打開數據庫
alter database open resetlogs;

--一致性關閉數據庫並重啓數據庫
shutdown immediate

startup


發佈了48 篇原創文章 · 獲贊 19 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章