oracle pdb从12.1迁移到19.20

发布于:2024-04-08 ⋅ 阅读:(122) ⋅ 点赞:(0)

oracle pdb从12.1迁移到19.20

1 unplug (12c的环境执行)

SQL> alter pluggable database VINCENT_TEST close immediate;
SQL> alter pluggable database VINCENT_TEST unplug into '/u01/backup/temp_20240401/VINCENT_TEST.xml';

2 plug (19c的环境执行)

SQL> create pluggable database VINCENT_TEST using '/u01/backup/temp_20240401/VINCENT_TEST.xml' nocopy tempfile reuse;

问题:
plug进19c时会报错。

3 升级数据字典(19c的环境执行) Grand Total Upgrade Time: [0d:0h:16m:53s]

$ORACLE_HOME/bin/dbupgrade -c VINCENT_TEST

4 检查pdb_plug_in_violations

SQL> alter pluggable database VINCENT_TEST open;

set line 200
col name for a15
col message for a120
select name,message,type,STATUS from pdb_plug_in_violations where STATUS<>'RESOLVED' and name='VINCENT_TEST'  order by time;


SQL> alter session set container=VINCENT_TEST;


--问题一
SQL> exec dbms_registry.OPTION_OFF('RAC');

--问题二
alter session set "_oracle_script"=true;
@/u01/app/oracle/product/12.1.0/dbhome_1/apex/apxremov1.sql
@/u01/app/oracle/product/12.1.0/dbhome_1/apex/apxremov2.sql 

alter pluggable database VINCENT_TEST close immediate;
alter pluggable database VINCENT_TEST open;

5 检查失效对象

--查看失效对象
set lines 200 pages 100
col OBJECT_NAME for a60
col owner for a15  
select owner,OBJECT_NAME,OBJECT_TYPE,to_char(CREATED,'yyyy-mm-dd hh24:mi:ss') CREATED,to_char(LAST_DDL_TIME,'yyyy-mm-dd hh24:mi:ss') LAST_DDL_TIME,STATUS from dba_objects where status='INVALID'  order by 1,3;

--编译失效对象
@?/rdbms/admin/utlrp.sql

--查询失效对象的时候,发现有很多失效的PUBLIC同义词,这些同义词关联的对象都是APEX_040200用户的。当前处理是把失效的同义词删除了。
set line 100
set pagesize 200
select OBJECT_NAME from dba_objects where status='INVALID' and owner='PUBLIC' and object_type='SYNONYM' ;

谨记:心存敬畏,行有所止。