升级方案
升级PDB
如跨版本和跨平台迁移( 升级) ,可以使用OGG 升级迁移。
拔插升级PDB

登陆主库,完成升级检查
# su - oracle
$ $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/ 19.x.x/rdbms/admin/preupgrade.jar dir /tmp -c sjwpdb
运行修复脚本,并关闭PDB
$ sqlplus / as sysdba;
SQL> alter session set container=frankpdb;
SQL> @/tmp/preupgrade_fixups_frankpdb.sql
SQL> alter pluggable database frankpdb close immediate instances=all;
SQL> alter session set container=cdb$root;
SQL> alter pluggable database frankpdb unplug into '/backup/frankpdb.pdb';
SQL> drop pluggable database frankpdb keep datafiles;
拷贝frankpdb.pdb 去高版本数据库所在主机,打开数据库PDB
SQL> create pluggable database frankpdb using '/backup/frankpdb.pdb' FILE_NAME_CONVERT=('frankdb','franktest');
SQL> alter session set container=frankpdb;
SQL> alter pluggable database open upgrade;
升级PDB
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d $ORACLE_HOME/rdbms/admin -c 'frankpdb' -l $ORACLE_BASE catupgrd.sql
$ sqlplus / as sysdba;
SQL> alter pluggable database frankpdb open instances=all;
SQL> alter pluggable database frankpdb save state instances=all;
升级后校验和编译
$ cd $ORACLE_HOME/rdbms/admin/
$ $ORACLE_HOME/perl/bin/perl catcon.pl –c 'frankpdb' -n 1 -e -b postfixups -d '''.''' /tmp/cfgtoollogs/FRANKPDB/preupgrade/postupgrade_fixups.sql
$ $ORACLE_HOME/perl/bin/perl catcon.pl –c 'frankpdb' -n 1 -e -b comp -d '''.''' utlrp.sql
文档参考:
How to Upgrade Pluggable Databases (PDBs) Sequentially to 12.2 (Doc ID 2171026.1)
