12c跨平台完成PDB的备份迁移

使用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;

/

郑州不孕不育医院:http://jbk.39.net/yiyuanzaixian/zztjyy//

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)


猜你喜欢

转载自blog.51cto.com/14393782/2408523