目的
测试通过热迁移的方式将12c database 升级到19c pdb
测试参考,生产慎用
环境如下
源库 | 目标库 |
---|---|
12.2.0.1.0 | 19.15.0.0.0 |
ORCL | PRODCDB/PDBPROD7 |
NONCDB | CDB |
在目标库创建dblink
create database link db12c_orcl connect to system identified by oracle using 'orcl';
进行迁移每隔5分钟刷新一次pdb
CREATE pluggable database pdbprod7 from non$cdb@db12c_orcl file_name_convert=('orcl','PRODCDB/PDBPROD7') refresh mode every 5 minutes;
在源库进行数据插入测试
system 用户
create table zhang(a int);
insert into zhang values('2');
commit;
普通用户
conn zhang/zhang
insert into aa values(3);
commit;
迁移结束后在源库继续插入数据,测试刷新是否正常
insert into aa values(6);
commit;
创建完成后PDBPROD7是mount状态
SYS@PRODCDB>show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBPROD1 READ WRITE NO
4 PDBPROD2 READ WRITE NO
5 PDBPROD3 READ WRITE NO
6 PDBPROD4 READ WRITE NO
7 PDBPROD6 READ WRITE NO
8 PDBPROD5 READ WRITE NO
9 PDBPROD7 MOUNTED
源库alert日志中会出现
2024-05-26T10:48:52.490107+08:00
PDBPROD7(10):Media Recovery Complete (PRODCDB)
PDBPROD7(10):Completed: alter pluggable database refresh
无法打开数据库
SYS@PRODCDB>alter session set container=PDBPROD7;
Session altered.
SYS@PRODCDB>startup
ORA-65341: cannot open pluggable database in read/write mode
跑升级脚本发现失败
等待5分钟关闭持续刷新模式
SYS@PRODCDB> ALTER PLUGGABLE DATABASE PDBPROD7 REFRESH MODE NONE;
Pluggable database altered.
执行升级脚本
<host01:PRODCDB:/home/oracle>$which dbupgrade
/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbupgrade
<host01:PRODCDB:/u01/app/oracle/product/19.3.0/dbhome_1/bin> dbupgrade -c PDBPROD7
连入pdb执行脚本
SYS@PRODCDB>show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBPROD1 READ WRITE NO
4 PDBPROD2 READ WRITE NO
5 PDBPROD3 READ WRITE NO
6 PDBPROD4 READ WRITE NO
7 PDBPROD6 MOUNTED
8 PDBPROD5 READ WRITE NO
10 PDBPROD7 MIGRATE YES
SYS@PRODCDB>alter session set container=PDBPROD7;
Session altered.
执行如下两脚本
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
@$ORACLE_HOME/rdbms/admin/utlrp.sql
执行后重启pdb
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBPROD1 READ WRITE NO
4 PDBPROD2 READ WRITE NO
5 PDBPROD3 READ WRITE NO
6 PDBPROD4 READ WRITE NO
7 PDBPROD6 MOUNTED
8 PDBPROD5 READ WRITE NO
10 PDBPROD7 READ WRITE NO
连入pdb后查询相关组件
select comp_name,version,status from sys.dba_registry;
COMP_NAME VERSION STATUS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------ ----------------------------------------------------------------------------------------
Oracle Database Catalog Views 19.0.0.0.0 VALID
Oracle Database Packages and Types 19.0.0.0.0 VALID
JServer JAVA Virtual Machine 19.0.0.0.0 VALID
Oracle XDK 19.0.0.0.0 VALID
Oracle Database Java Packages 19.0.0.0.0 VALID
OLAP Analytic Workspace 19.0.0.0.0 VALID
Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
Oracle XML Database 19.0.0.0.0 VALID
Oracle Workspace Manager 19.0.0.0.0 VALID
Oracle Text 19.0.0.0.0 VALID
Oracle Multimedia 19.0.0.0.0 VALID
COMP_NAME VERSION STATUS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------ ----------------------------------------------------------------------------------------
Spatial 19.0.0.0.0 VALID
Oracle OLAP API 19.0.0.0.0 VALID
Oracle Label Security 19.0.0.0.0 VALID
Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
查询在迁移时候进行数据插入的数据
ZHANG@PDBPROD7>select * from aa;
A
----------
6
注意
关闭PDB Refresh功能后,就不能再转换为Refresh PDB。
查询如下视图修改相关问题参数
select * from PDB_PLUG_IN_VIOLATIONS;