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;
  • 驗證結果java

    具體恢復步驟:

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

  1. 另起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; 
}

  1. 對源庫進行參數文件、控制文件的備份,而且記錄該備份路徑。
backup spfile;
backup current controlfile;

  1. 在目標系統中安裝相同版本的ORACLE數據庫,而且將DB_HOME與DB_SID設置與源庫中同樣。
  2. 安裝完畢後,將上述所備份的全庫備份文件,參數文件備份,控制文件備份拷貝至目標庫中相同的系統路徑中
  3. 在目標庫中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;

  1. 在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';

  1. 關閉數據庫而且以還原後的參數文件進行nomount啓動
shutdown immediate;
startup nomount;

  1. 在目標庫中進行控制文件恢復
restore controlfile from 'D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2019_01_30\O1_MF_NCNNF_TAG20190130T171148_G52TLNS2_.BKP';

  1. 關閉數據庫而且以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;
相關文章
相關標籤/搜索