如何還原一個12c版本之前的資料庫備份到一個不同OS平臺,不同位元組碼順序的12c資料庫

mosdoc發表於2016-12-14
如何還原一個 12c 版本之前的資料庫備份到一個不同作業系統平臺,不同位元組碼順序的 12c 資料庫 (文件 ID 2047631.1)

文件內容


目標

解決方案

參考


適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文件所含資訊適用於所有平臺

目標

在 12c 資料庫中,我們可以還原和恢復一個在不同於當前作業系統,不同於當前位元組碼順序的平臺所生成的備份到當前資料庫中,並且不用執行比正常恢復更多的額外命令。

根據 "Bug 13335722 - Enhancement to allow RMAN conversion of backups cross-endian cross-platform" 你可以使用命令'restore from platform'還原一個在 11.2.0.4 中生成的備份到 12c 資料庫中。


 

解決方案

額外需要的語法是'restore from platform'。在以下例子中,我們用 rman 遷移一個表空間從 Solaris (SPARC) 平臺到 Linux (x86-64) 平臺:

在源庫 11.2.0.4 中,把表空間 TS2 置為只讀模式:

SQL> alter tablespace ts2 read only;


建立表空間 TS2 的全備份:

RMAN> backup incremental level 0 format '/export/home/oracle/bkup/sol_l0_ts2.dat' tablespace ts2;


使用 data pump 匯出表空間 TS2 的後設資料:

% expdp \“/ as sysdba\” directory=xtt_dump_dir dumpfile=sol_ts2.dmp logfile=xtt_dump_dir transport_tablespaces=ts2;

 

在目標庫 12c,使用'RESTORE FROM PLATFORM '命令還原 TS2 全備份到資料庫並匯入 TS2 的後設資料。

 

還原 TS2 的全備份到新的路徑:

RMAN> restore from platform ‘Solaris[tm] OE (64-bit)’ foreign datafile 7 format ‘/home/oracle/dp/ts2.dbf’ from backupset ‘/home/oracle/dp/sol_l0_ts2.dat’;


建立新使用者 HR2(用於隨著 TS2 後設資料一起匯入的表):

SQL> create user hr2 identified by oracle;


匯入後設資料,把表空間 TS2"插入"當前資料庫:

% impdp ‘”/ as sysdba”’ directory=dpdir dumpfile=sol_ts2.dmp transport_datafiles=’/home/oracle/dp/ts2.dbf’ nologfile=Y;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2130495/,如需轉載,請註明出處,否則將追究法律責任。

相關文章