使用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)
转载于:https://blog.51cto.com/14393782/2408523