ORACLE10G非歸檔模式下RMAN異機遷庫


環境信息:

源庫 目標庫
操作系統 WIN7 WIN SVR 2012 R2
IP x.x.x.216 x.x.x.112
數據庫版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 64bi
存儲方式 單實例 單實例
ORACLE_HOME D:\oracle\product\10.2.0\db_1 D:\oracle\product\10.2.0\db_1
ORACLE_SID ORCL ORCL

RMAN恢復思路步驟:

  • 初始化數據庫,安裝相同環境;
  • 恢復參數文件;
  • 恢復控制文件;
  • 啟動數據庫到MOUNT狀態,利用控制文件進行數據恢復;
  • restore database;
  • alter database open ressetlogs;
  • 驗證結果

具體恢復步驟:

  1. 在源庫上登錄RMAN控制台並且進行切換日志組,觸發檢查點,關閉數據庫,重啟動數據庫至mount模式。
rman target /
sql'alter system switch logfile';
sql'alter system checkpoint';
shutdown immediate;
startup mount;


2. 另起1個命令窗口,登錄sqlplus,查詢DBID並且記錄下該值后關閉該命令窗口。

sqlplus / as sysdba
select dbid from v$database;

  1. 對源庫進行全備份,並且記錄該備份路徑。
run{
    allocate channel d1 type disk;  
    allocate channel d2 type disk;
    backup as compressed backupset database;
    release channel d1;
    release channel d2;
    report obsolete;  
    crosscheck backup; 
    delete noprompt expired backup; 
   delete noprompt obsolete; 
}


4. 對源庫進行參數文件、控制文件的備份,並且記錄該備份路徑。

backup spfile;
backup current controlfile;


5. 在目標系統中安裝相同版本的ORACLE數據庫,並且將DB_HOME與DB_SID設置與源庫中一樣。

6. 安裝完畢后,將上述所備份的全庫備份文件,參數文件備份,控制文件備份拷貝至目標庫中相同的系統路徑中
7. 在目標庫中D:\oracle\product\10.2.0\db_1\database新建一個空白文件,文件名稱為FAKESPFILEORCL.ORA,並且將下方內容復制進文件中

db_name=ORCL
java_pool_size=4194304
large_pool_size=4194304
shared_pool_size=96468992
  1. 如果目標庫中未shutdown則先shutdown,並且以新建的參數文件進行nomount啟動數據庫
startup pfile='D:\oracle\product\10.2.0\db_1\database\FAKESPFILEORCL.ORA' nomount;


9. 在RMAN下,執行命令 SET DBID=1526707455(源庫DBID);

set dbid=1526707455;

  1. 在目標庫中進行參數文件恢復
restore spfile from 'D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2019_01_30\O1_MF_NNSNF_TAG20190130T171134_G52TL81Y_.BKP';


11. 關閉數據庫並且以還原后的參數文件進行nomount啟動

shutdown immediate;
startup nomount;


12. 在目標庫中進行控制文件恢復

restore controlfile from 'D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2019_01_30\O1_MF_NCNNF_TAG20190130T171148_G52TLNS2_.BKP';


13. 關閉數據庫並且以mount啟動

shutdown immediate;
startup mount;
  1. (可選操作)修改控制文件中記錄的數據文件路徑(如果源系統中存在數據庫文件在F盤而目標系統不存在F盤則有必要進行此步操作),並且啟動恢復
    (或者使用windows虛擬盤符)
    !請確保目標系統中存在數據文件存放的路徑文件夾!
report schema;

run{
	set newname for datafile 8 to 'D:\ORACLEDATA1\INFO_LOB';
	restore database;             
	switch datafile all;          
}

  • 此時數據庫恢復完成
  1. 如果不需要修改路徑則直接restore database;即可
    !請確保目標系統中存在數據文件存放的路徑文件夾!
  2. 清除重做日志打開數據庫
alter database open resetlogs;
  1. 驗證數據庫(驗證源數據庫中的數據是否到目標數據庫中)
  2. 結束

ps:

  1. 其他參考地址:
    http://blog.51cto.com/jiujian/1165766
    http://blog.51cto.com/pimg2005/1920337
    https://blog.csdn.net/hzcyhujw/article/details/79421613
    https://docs.oracle.com/cd/B19306_01/backup.102/b14192/recov004.htm#sthref588
  2. win系統遷移linux與上述步驟相似,不過需要在參數文件還原后重新修改控制文件的具體路徑
  3. 監控執行的進度
select sid,SERIAL# ,CONTEXT,SOFAR,TOTALWORK,round(SOFAR/TOTALWORK*100,2) "_%" from v$session_longops where OPNAME like 'RMAN%' and SOFAR<>TOTALWORK and TOTALWORK<>0;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM