PDB拔插操作手册
  IE5LYMWlmdvL 2023年11月02日 18 0

1. 适用范围

12.1.0.1之后,CDB环境

2. 环境信息

源端和目标端为同一套RAC上的两个CDB实例,PDB1,CON_ID 3为计划迁移的PDB

源端:

PDB拔插操作手册_临时文件


目标端:

PDB拔插操作手册_临时文件_02

set lines 200 
col name for a90
select CON_ID,FILE#,name from v$datafile;

源端:

PDB拔插操作手册_PDB_03


目标端:

PDB拔插操作手册_oracle_04

3. 源端目标端一致性对比

确保字符集一致

select userenv('language') from dual;

PDB拔插操作手册_PDB_05

确保组件安装一致

set lines 200
set pages 99
col COMP_ID for a10
col COMP_NAME for a50
col status for a10
select COMP_ID,COMP_NAME,VERSION,VERSION_FULL,STATUS from dba_registry;

PDB拔插操作手册_PDB_06


确保补丁一致

set lines 200
col ACTION_TIME for a40
col COMMENTS for a30
col ACTION for a10
col VERSION for a15
col BUNDLE_SERIES for a20
col NAMESPACE for a10
select * from dba_registry_history;

PDB拔插操作手册_临时文件_07

4. 源库拔出PDB

4.1 关闭所有实例上需要拔出的pdb

alter pluggable database pdb1 close immediate instances=all;

4.2 拔出PDB

拔出PDB,并指定生成XML文件;==因为拔出后的pdb无法正常启动,只能执行插入或者删除操作。如需回退,注意做好备份或CDB还原点创建。==

alter pluggable database pdb1 unplug into '/home/oracle/pdb1.xml';

4.3 源端删除PDB并保留数据文件

drop pluggable database pdb1 keep datafiles;

4.4 源端删除完验证

看不到删除的pdb

show pdbs
select pdb_name, status from cdb_pdbs where pdb_name in ('PDB1');

5. 目标端插入PDB

5.1 目标端兼容性检查

确保兼容性通过,查询pdb_plug_in_violations看有什么警告的地方

set serveroutput on
DECLARE
   compatible BOOLEAN := FALSE;
BEGIN  
   compatible := DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
        pdb_descr_file => '/home/oracle/pdb1.xml');
   if compatible then
      DBMS_OUTPUT.PUT_LINE('Is pluggable PDB1 compatible? YES');
   else DBMS_OUTPUT.PUT_LINE('Is pluggable PDB1 compatible? NO');
   end if;
END;
/

PDB拔插操作手册_xml_08

set lines 300
col name for a10
col type for a10
col message for a80
select con_id,name,type,message,status from pdb_plug_in_violations order by name,time;

5.2 目标端插入PDB

使用NOCOPY选项(除此之外,还有COPY,MOVE等选项,分别适用于不同场景)
此处如需修改pdb name,则可以直接指定新的pdb name即可。

create pluggable database pdb1 using '/home/oracle/pdb1.xml' NOCOPY TEMPFILE REUSE;

5.3 目标端检查PDB

使用NOCOPY方式,PDB的数据文件位置不变;临时文件在删除源库PDB时自动删除,新临时文件自动创建在目标端PDB的位置

select pdb_name, status from cdb_pdbs where pdb_name='PDB1';

PDB拔插操作手册_拔插PDB_09


PDB拔插操作手册_PDB_10

set lines 200 
col name for a90
select CON_ID,FILE#,name from v$datafile;

PDB拔插操作手册_拔插PDB_11

select CON_ID,FILE#,name from v$tempfile;

PDB拔插操作手册_oracle_12

5.4 目标端开启并检查PDB

确保状态为RESOLVED

alter pluggable database PDB1 open instances=all;
alter pluggable database PDB1 save state instances=all;


set lines 300
col name for a10
col type for a10
col message for a80
select con_id,name,type,message,status from pdb_plug_in_violations order by name,time;

PDB拔插操作手册_临时文件_13

6. 参考文档

Multitenant Unplug/Plug Best Practices (Doc ID 1935365.1)
How to Unplug and Plugin PDB (Doc ID 2728046.1)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: PXC某个节点异常恢复 下一篇: 子查询
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
IE5LYMWlmdvL
最新推荐 更多

2024-05-17