
点击上方
蓝色
文字 关注我吧!

上一期我们做了19c的远程克隆,并且总结了一下遇到的问题。这一期,我们继续研究远程克隆问题,这次克隆难度加大,是跨版本的远程克隆。
关键词:12c,19c, cdb , pdb, database link , remote clone
结论
在同平台下,12c 中可插拔数据库是可以远程克隆到19c的容器中的。
今天我们来实际测试这个结果的正确性,首先要满足一个条件,同平台下。
为什么要说同平台呢?
与不同操作系统数据存储是采用大端模式(Big-Endian)还是小端模式(Little-Endian)有关,
如果想详细了解,网络上有很多这方面资料,自行查询。
简单来说就是不同平台数据存储字节的顺序有差异,在跨平台物理传输会造成数据乱码。
环境准备
| 列项 | 源端 | 目标端 |
|---|---|---|
| 操作系统 | RHEL-7.4 x64 | RHEL-7.4 x64 |
| 数据库版本 | Oracle-12.2.0.1 | Oracle-19.4.0.0 |
克隆准备
1)数据库用户权限
--指源库用户赋予权限
CREATE PLUGGABLE DATABASE
CREATE SESSION
**2)数据库链database link** 在目标库中创建源库的数据库链
SQL> create database link clonePdb connect to C##BAKUSR identified by bakusr using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.200)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLPDB)))';
3)数据库功能组件差异对比
12c功能组件
select comp_id,substr(comp_name,1,40) comp_name,version,status from dba_registry order by comp_id;
COMP_ID COMP_NAME VERSION STATUS
/------------------------------ ---------------------------------------- ------------------------------ --------------------------------------------
APEX Oracle Application Express 5.0.4.00.12 VALID
APS OLAP Analytic Workspace 12.2.0.1.0 VALID
CATALOG Oracle Database Catalog Views 12.2.0.1.0 VALID
CATJAVA Oracle Database Java Packages 12.2.0.1.0 VALID
CATPROC Oracle Database Packages and Types 12.2.0.1.0 VALID
CONTEXT Oracle Text 12.2.0.1.0 VALID
JAVAVM JServer JAVA Virtual Machine 12.2.0.1.0 VALID
ORDIM Oracle Multimedia 12.2.0.1.0 VALID
OWM Oracle Workspace Manager 12.2.0.1.0 VALID
RAC Oracle Real Application Clusters 12.2.0.1.0 OPTION OFF
SDO Spatial 12.2.0.1.0 VALID
XDB Oracle XML Database 12.2.0.1.0 VALID
XML Oracle XDK 12.2.0.1.0 VALID
XOQ Oracle OLAP API 12.2.0.1.0 VALID
14 rows selected.
19c功能组件
COMP_ID COMP_NAME VERSION STATUS
/------------------------------ ---------------------------------------- ------------------------------ --------------------------------------------
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID --19c比12c多的组件
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 LOADING
XDB Oracle XML Database 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
15 rows selected.
注:目标库比源库数据库组件多则在远程克隆后,直接在目标库进行升级操作;如果目标库比源库数据库组件少,则要在远程克隆后,采用在目标段PDB中删除多余的注册组件信息。
删除组件注册信息方法:
SQL> delete from sys.registry$ where cid in ('JAVAVM','CATJAVA','XML','APS','CONTEXT','ORDIM','SDO','XOQ');
SQL> commit;
克隆数据库
在目标库CDB中执行以下命令:
SQL> create pluggable database orclpdb from orclpdb@clonepdb;
克隆库升级
数据库克隆好以后,如果数据库直接Open操作,会出现ERROR,并且克隆的数据库状态RESTRICTED=YES。进一步查询ERROR原因如下:
set linesize 150
col name for a10
col cause for a25
col time for a30
col message for a35
select type, time,name,cause,status,message from PDB_PLUG_IN_VIOLATIONS where TYPE='ERROR' order by name;
TYPE TIME NAME CAUSE STATUS MESSAGE
/--------- ------------------------------ ---------- ------------------------- --------- -----------------------------------
ERROR 02-OCT-19 03.04.42.490177 PM ORCLPDB OPTION PENDING Database option CATALOG mismatch: P
DB installed version 12.2.0.1.0. CD
B installed version 19.0.0.0.0.
ERROR 02-OCT-19 03.04.42.490807 PM ORCLPDB OPTION PENDING Database option CATPROC mismatch: P
DB installed version 12.2.0.1.0. CD
B installed version 19.0.0.0.0.
ERROR 02-OCT-19 03.04.42.491128 PM ORCLPDB OPTION PENDING Database option OWM mismatch: PDB i
nstalled version 12.2.0.1.0. CDB in
stalled version 19.0.0.0.0.
ERROR 02-OCT-19 03.04.42.491380 PM ORCLPDB OPTION PENDING Database option XDB mismatch: PDB i
nstalled version 12.2.0.1.0. CDB in
stalled version 19.0.0.0.0.
ERROR 02-OCT-19 03.04.43.753933 PM ORCLPDB VSN not match PENDING PDB's version does not match CDB's
version: PDB's version 12.2.0.1.0.
CDB's version 19.0.0.0.0.
由Messages信息可以知道,报错的都是因为CDB的版本是19,而PDB版本是12.2.0.1.
执行升级:
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
$ORACLE_HOME/rdbms/admin -c 'ORCLPDB' -l $ORACLE_BASE catupgrd.sql
输出信息如下:
Argument list for [/oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in c = ORCLPDB
Do not run in C = 0
Input Directory d = oracle/app/oracle/product/19c/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = 0
Child Process I = 0
Log Dir l = oracle/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 0
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION: [19.0.0.0.0]
STATUS: [Production]
BUILD: [RDBMS_19.4.0.0.0DBRU_LINUX.X64_190626]
/oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/orahome = [/oracle/app/oracle/product/19c/dbhome_1]
/oracle/app/oracle/product/19c/dbhome_1/bin/orabasehome = [/oracle/app/oracle/product/19c/dbhome_1]
catctlGetOraBaseLogDir = [/oracle/app/oracle/product/19c/dbhome_1]
Analyzing file oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/oracle/app/oracle]
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/oracle/app/oracle/catupgrd_catcon_15307.lst]
catcon::set_log_file_base_path: catcon: See [/oracle/app/oracle/catupgrd.log] files for output generated by scripts
catcon::set_log_file_basepath: catcon: See [/oracle/app/oracle/catupgrd.lst] files for spool files, if any
Number of Cpus = 128
Database Name = ta19cdb
DataBase Version = 19.0.0.0.0
Parallel SQL Process Count (PDB) = 2
Parallel SQL Process Count (CDB$ROOT) = 8
Concurrent PDB Upgrades = 64
Generated PDB Inclusion:[ORCLPDB]
CDB$ROOT Open Mode = [OPEN]
Concurrent PDB Upgrades Reset = 1
Start processing of PDBs (ORCLPDB)
[/oracle/app/oracle/product/19c/dbhome_1/perl/bin/perl oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/catctl.pl -d oracle/app/oracle/product/19c/dbhome_1/rdbms/admin -c 'ORCLPDB' -l oracle/app/oracle -I -i orclpdb -n 2 catupgrd.sql]
Argument list for [/oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in c = ORCLPDB
Do not run in C = 0
Input Directory d = oracle/app/oracle/product/19c/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = orclpdb
Child Process I = 1
Log Dir l = oracle/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 2
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION: [19.0.0.0.0]
STATUS: [Production]
BUILD: [RDBMS_19.4.0.0.0DBRU_LINUX.X64_190626]
/oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/orahome = [/oracle/app/oracle/product/19c/dbhome_1]
/oracle/app/oracle/product/19c/dbhome_1/bin/orabasehome = [/oracle/app/oracle/product/19c/dbhome_1]
catctlGetOraBaseLogDir = [/oracle/app/oracle/product/19c/dbhome_1]
Analyzing file oracle/app/oracle/product/19c/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/oracle/app/oracle]
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/oracle/app/oracle/catupgrdorclpdb_catcon_16292.lst]
catcon::set_log_file_base_path: catcon: See [/oracle/app/oracle/catupgrdorclpdb.log] files for output generated by scripts
catcon::set_log_file_basepath: catcon: See [/oracle/app/oracle/catupgrdorclpdb.lst] files for spool files, if any
Number of Cpus = 128
Database Name = ta19cdb
DataBase Version = 19.0.0.0.0
ORCLPDB Open Mode = [MIGRATE]
Generated PDB Inclusion:[ORCLPDB]
CDB$ROOT Open Mode = [OPEN]
Components in [ORCLPDB]
Installed [CATALOG CATPROC OWM XDB]
Not Installed [APEX APS CATJAVA CONTEXT DV EM JAVAVM MGW ODM OLS ORDIM RAC SDO WK XML XOQ]
/------------------------------------------------------
Phases [0-107] Start Time:[2019_10_03 08:59:36]
Container Lists Inclusion:[ORCLPDB] Exclusion:[NONE]
/------------------------------------------------------
* Executing Change Scripts *
Serial Phase #:0 [ORCLPDB] Files:1
Time: 53s
* Catalog Core SQL *
Serial Phase #:1 [ORCLPDB] Files:5 Time: 67s
Restart Phase #:2 [ORCLPDB] Files:1 Time: 1s
* Catalog Tables and Views *
Parallel Phase #:3 [ORCLPDB] Files:19 Time: 30s
Restart Phase #:4 [ORCLPDB] Files:1 Time: 2s
* Catalog Final Scripts **
Serial Phase #:5 [ORCLPDB] Files:7 Time: 29s
* Catproc Start **
Serial Phase #:6 [ORCLPDB] Files:1 Time: 40s
* Catproc Types **
Serial Phase #:7 [ORCLPDB] Files:2 Time: 18s
Restart Phase #:8 [ORCLPDB] Files:1 Time: 1s
** Catproc Tables **
Parallel Phase #:9 [ORCLPDB] Files:67 Time: 39s
Restart Phase #:10 [ORCLPDB] Files:1 Time: 1s
* Catproc Package Specs **
Serial Phase #:11 [ORCLPDB] Files:1 Time: 91s
Restart Phase #:12 [ORCLPDB] Files:1 Time: 1s
** Catproc Procedures **
Parallel Phase #:13 [ORCLPDB] Files:94 Time: 15s
Restart Phase #:14 [ORCLPDB] Files:1 Time: 2s
Parallel Phase #:15 [ORCLPDB] Files:121 Time: 20s
Restart Phase #:16 [ORCLPDB] Files:1 Time: 2s
Serial Phase #:17 [ORCLPDB] Files:22 Time: 10s
Restart Phase #:18 [ORCLPDB] Files:1 Time: 2s
* Catproc Views **
Parallel Phase #:19 [ORCLPDB] Files:32 Time: 34s
Restart Phase #:20 [ORCLPDB] Files:1 Time: 1s
Serial Phase #:21 [ORCLPDB] Files:3 Time: 22s
Restart Phase #:22 [ORCLPDB] Files:1 Time: 2s
Parallel Phase #:23 [ORCLPDB] Files:25 Time: 119s
Restart Phase #:24 [ORCLPDB] Files:1 Time: 1s
Parallel Phase #:25 [ORCLPDB] Files:12 Time: 77s
Restart Phase #:26 [ORCLPDB] Files:1 Time: 1s
Serial Phase #:27 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:28 [ORCLPDB] Files:3 Time: 11s
Serial Phase #:29 [ORCLPDB] Files:1 Time: 0s
Restart Phase #:30 [ORCLPDB] Files:1 Time: 2s
* Catproc CDB Views **
Serial Phase #:31 [ORCLPDB] Files:1 Time: 9s
Restart Phase #:32 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:34 [ORCLPDB] Files:1 Time: 0s
* Catproc PLBs *
Serial Phase #:35 [ORCLPDB] Files:294 Time: 32s
Serial Phase #:36 [ORCLPDB] Files:1 Time: 0s
Restart Phase #:37 [ORCLPDB] Files:1 Time: 2s
Serial Phase #:38 [ORCLPDB] Files:6 Time: 10s
Restart Phase #:39 [ORCLPDB] Files:1 Time: 2s
* Catproc DataPump *
Serial Phase #:40 [ORCLPDB] Files:3 Time: 53s
Restart Phase #:41 [ORCLPDB] Files:1 Time: 1s
** Catproc SQL *
Parallel Phase #:42 [ORCLPDB] Files:13 Time: 72s
Restart Phase #:43 [ORCLPDB] Files:1 Time: 1s
Parallel Phase #:44 [ORCLPDB] Files:11 Time: 13s
Restart Phase #:45 [ORCLPDB] Files:1 Time: 1s
Parallel Phase #:46 [ORCLPDB] Files:3 Time: 11s
Restart Phase #:47 [ORCLPDB] Files:1 Time: 1s
* Final Catproc scripts **
Serial Phase #:48 [ORCLPDB] Files:1 Time: 18s
Restart Phase #:49 [ORCLPDB] Files:1 Time: 1s
** Final RDBMS scripts *
Serial Phase #:50 [ORCLPDB] Files:1 Time: 14s
** Upgrade Component Start *
Serial Phase #:51 [ORCLPDB] Files:1 Time: 9s
Restart Phase #:52 [ORCLPDB] Files:1 Time: 2s
** Upgrading Java and non-Java *
Serial Phase #:53 [ORCLPDB] Files:2 Time: 37s
* Upgrading XDB **
Restart Phase #:54 [ORCLPDB] Files:1 Time: 2s
Serial Phase #:56 [ORCLPDB] Files:3 Time: 21s
Serial Phase #:57 [ORCLPDB] Files:3 Time: 14s
Parallel Phase #:58 [ORCLPDB] Files:10 Time: 15s
Parallel Phase #:59 [ORCLPDB] Files:25 Time: 17s
Serial Phase #:60 [ORCLPDB] Files:4 Time: 22s
Serial Phase #:61 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:62 [ORCLPDB] Files:32 Time: 15s
Serial Phase #:63 [ORCLPDB] Files:1 Time: 0s
Parallel Phase #:64 [ORCLPDB] Files:6 Time: 18s
Serial Phase #:65 [ORCLPDB] Files:2 Time: 28s
Serial Phase #:66 [ORCLPDB] Files:3 Time: 35s
** Upgrading ORDIM *
Restart Phase #:67 [ORCLPDB] Files:1 Time: 2s
Serial Phase #:69 [ORCLPDB] Files:1 Time: 13s
Parallel Phase #:70 [ORCLPDB] Files:2 Time: 13s
Restart Phase #:71 [ORCLPDB] Files:1 Time: 2s
Parallel Phase #:72 [ORCLPDB] Files:2 Time: 14s
Serial Phase #:73 [ORCLPDB] Files:2 Time: 13s
* Upgrading SDO **
Restart Phase #:74 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:76 [ORCLPDB] Files:1 Time: 13s
Serial Phase #:77 [ORCLPDB] Files:2 Time: 12s
Restart Phase #:78 [ORCLPDB] Files:1 Time: 2s
Serial Phase #:79 [ORCLPDB] Files:1 Time: 13s
Restart Phase #:80 [ORCLPDB] Files:1 Time: 1s
Parallel Phase #:81 [ORCLPDB] Files:3 Time: 14s
Restart Phase #:82 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:83 [ORCLPDB] Files:1 Time: 13s
Restart Phase #:84 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:85 [ORCLPDB] Files:1 Time: 13s
Restart Phase #:86 [ORCLPDB] Files:1 Time: 1s
Parallel Phase #:87 [ORCLPDB] Files:4 Time: 14s
Restart Phase #:88 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:89 [ORCLPDB] Files:1 Time: 13s
Restart Phase #:90 [ORCLPDB] Files:1 Time: 0s
Serial Phase #:91 [ORCLPDB] Files:2 Time: 13s
Restart Phase #:92 [ORCLPDB] Files:1 Time: 1s
Serial Phase #:93 [ORCLPDB] Files:1 Time: 9s
Restart Phase #:94 [ORCLPDB] Files:1 Time: 1s
* Upgrading ODM, WK, EXF, RUL, XOQ *
Serial Phase #:95 [ORCLPDB] Files:1 Time: 9s
Restart Phase #:96 [ORCLPDB] Files:1 Time: 1s
* Final Component scripts *
Serial Phase #:97 [ORCLPDB] Files:1 Time: 11s
* Final Upgrade scripts **
Serial Phase #:98 [ORCLPDB] Files:1 Time: 153s
* Migration **
Serial Phase #:99 [ORCLPDB] Files:1 Time: 9s
End PDB Application Upgrade Pre-Shutdown
Serial Phase #:100 [ORCLPDB] Files:1 Time: 9s
Serial Phase #:101 [ORCLPDB] Files:1 Time: 12s
Serial Phase #:102 [ORCLPDB] Files:1 Time: 9s
* Post Upgrade *
Serial Phase #:103 [ORCLPDB] Files:1 Time: 55s
** Summary report **
Serial Phase #:104 [ORCLPDB] Files:1 Time: 9s
* End PDB Application Upgrade Post-Shutdown
Serial Phase #:105 [ORCLPDB] Files:1 Time: 9s
Serial Phase #:106 [ORCLPDB] Files:1 Time: 12s
Serial Phase #:107 [ORCLPDB] Files:1 Time: 0s
/------------------------------------------------------
Phases [0-107] End Time:[2019_10_03 09:27:15]
Container Lists Inclusion:[ORCLPDB] Exclusion:[NONE]
/------------------------------------------------------
Grand Total Time: 1660s [ORCLPDB]
LOG FILES: (/oracle/app/oracle/catupgrdorclpdb.log)
Upgrade Summary Report Located in:
/oracle/app/oracle/upg_summary.log
Time: 1763s For PDB(s)
Grand Total Time: 1763s
LOG FILES: (/oracle/app/oracle/catupgrd.log)
Grand Total Upgrade Time: [0d:0h:29m:23s]
说明:PDB升级是数据库Read Write状态进行,且对其他正常使用的PDB没有影响。库不大,但升级时间在30min左右,对于小库来说,采用数据泵方式要比这种克隆方式快,而对于大库来说,采用克隆方式是一种高效的方法,且能保证数据本身的有效性。各有优点,需要根据实际情况进行评估。
文章转载自DigOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




