源库 目标库
版本 18.3 19.3
CDB的名称 orcl orcl
要克隆pdb的名称 fixfpdb du_fixfpdb
ip地址 192.168.5.124 192.168.5.129
存储方式 FS FS

1.源库创建测试pdb

  1. create pluggable database fixf_pdb from pdb ;

2.目标库创建到源库pdb 的dblink

  1. create public database link test18cpdb
  2. connect to system identified by "Oracle123"
  3. using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.124)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = fixf_pdb)))';

3.源库给system 账户授权

  1. grant create pluggable database to system container=all;

4.目标库创建远程源库的pdb

  1. create pluggable database du_fixfpdb from fixf_pdb@test18cpdb ;

5.打开目标库已经复制的pdb数据库

注意:pdb 已经打开但有错误

  1. SQL> alter pluggable database du_fixfpdb open;
  2. Warning: PDB altered with errors.

6.查询不同版本pdb 复制导致的错误

  1. SELECT to_char(time, 'YYYY-MM-DD HH24:MI:SS') time,
  2. NAME,
  3. CAUSE,
  4. TYPE,
  5. LINE,
  6. MESSAGE,
  7. STATUS,
  8. ACTION,
  9. CON_ID
  10. FROM PDB_PLUG_IN_VIOLATIONS
  11. where status='PENDING'
  12. order by time desc;

7.执行脚本处理

1、如果是相同版本迁移,则不需要执行此命令。
#2、可以加上-n表示并行数

  1. $ORACLE_HOME/bin/dbupgrade -c du_fixfpdb -n 4
  2. # $ORACLE_HOME/bin/dbupgrade -c 'PDB1 PDB2' #同时升级2个PDB

执行完成后重新打开pdb 则无报错