12c跨平臺完成PDB的備份遷移

巡完南山巡南山發表於2019-06-13

使用Rman,Pluggable database (PDBs) 可以被傳送到不同平臺並插入到目標的 CDB 中,連同 PDB 的備份

Rman 也會 copy 必要的後設資料(metadata) 到目標CDB 端。源 CDB 和目標 CDB 必須是相同的位元組序(Endian)


下面的步驟展示瞭如何從 Solaris(Big Endian) 遷移一個關閉的 PDB 到 AIX (Big Endian) 平臺。


SQL> select name,open_mode,platform_name from v$database;


Source:

NAME      OPEN_MODE     PLATFORM_NAME

--------- ------------- ------------------------

SRC122    READ WRITE    Solaris[tm] OE (64-bit)


Destination:

NAME      OPEN_MODE    PLATFORM_NAME

--------- ------------ ---------------------------

DEST122   READ WRITE   AIX-Based Systems (64-bit) 


解決方案

1. 關閉源 PDB:

SQL> alter pluggable database PDB1 close immediate;


2. 備份源 PDB:

RMAN> backup for transport

2> unplug into '/bugmnt7/ap/celcsol2/SR1.12121212121/oradata/backup/PDB1_Metadata.xml'

3> format '/bugmnt7/ap/celcsol2/SR1.12121212121/oradata/backup/PDB1_BKP_%U'

4> pluggable database PDB1;


3. 用 SCP 傳送備份集合和 PDB 後設資料(metadata)到目標端:


4. 在目標端使用 dbms_pdb.check_plug_compatibility 檢測是否可以 pluggin:

set serveroutput on

declare

c boolean;

begin

c:=dbms_pdb.check_plug_compatibility('/home/bugmnt/oradata/backup/PDB1_Metadata.xml','PDB1');

if (c) then dbms_output.put_line('True');

else dbms_output.put_line('False');

end if;

end;

/


5. 在目標端還原 (Restore) PDB:

RMAN> restore using '/home/bugmnt/oradata/backup/PDB1_Metadata.xml'

2> foreign pluggable database PDB1

3> format '/home/bugmnt/oradata/DEST122/%U'

4> from backupset '/home/bugmnt/oradata/backup/PDB1_BKP_02s9sj0u_1_1';


6. 在目標端開啟 PDB1:

SQL> alter pluggable database PDB1 open;


備註:本文件涵蓋了使用一致性備份進行PDB的跨平臺遷移策略

為減少停機時間,遷移工作也可以採用歸檔情況下的非一致性備份

這種情況的備份是PDB 在open read write 情況下,採用 FOR TRANSPORT 以及 ALLOW INCONSISTENT進行的PDB level0的備份

然後,在pdb 關閉情況下透過 FROM SCN 和 UNPLUG INTO (12.2新的關鍵字) 進行的level 1的備份,同時也要得到PDB的後設資料


參考MOS文章12.2 RMAN Cross-Platform Transport of PDB into Destination CDB (文件 ID 2308210.1)

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

相關文章