暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

升级测试–在线将PDB克隆到19c

原创 Mike.Dietrich 2020-04-16
2177

过去,我写了一些有关将PDB克隆到新环境的文章。我还添加了有关RELOCATE的帖子。但是我意识到我没有关于一个非常典型场景的特定博客文章:升级测试–在线将PDB克隆到19c。

image.png
JørgenHåland在Unsplash上​​拍摄的照片

我的设定

我有一个带PDB的Oracle 12.2.0.1 CDB和另一个Oracle 19.6.0 CDB。我将把PDB从12.2.0.1热克隆到更高版本的CDB,然后升级PDB。

image.png

这样做的动机是允许我的测试环境中的应用程序团队已经在19.6.0上进行测试。一旦AutoUpgrade也支持这种情况,您便可以每晚自动进行此操作。

热克隆

自从Oracle 12.2.0.1引入本地撤消以来,就可以使用热克隆。因此,如果我的来源至少是Oracle 12.2.0.1,并且使用默认的本地撤消,则可以使用。像往常一样,我显示了操作顺序:

CDB1:
为重新定位操作创建一个普通用户并分配必要的特权:

创建用户c ## borg由oracle缺省表空间用户标识临时表空间temp CONTAINER = ALL;
授予CREATE SESSION,创建可插拔的数据库,以SYSOPER的形式创建到c ## borg CONTAINER = ALL;
复制

CDB2:
创建用于重新定位操作的公共数据库链接:

创建公共数据库链接clonemypdb连接到c ## borg,由oracle使用'CDB1'标识;
复制

启动重定位:

从PDB1 @ clonemypdb创建可插入数据库PDB1 file_name_convert =('CDB1','CDB2');
复制

打开PDB:

改可插拔数据库PDB1的打开升级;
复制

PDB仅在限制模式下打开时会出现错误。

然后,我需要以升级模式在CDB2中打开PDB1,因为它的字典仍然是Oracle 12.2.0.1字典,而现在它在19c数据库中运行。

我需要升级。

PDB升级

这一步很简单,因为我只是避免了预升级步骤。在我的环境中,升级PDB1之前不需要执行任何其他任务。

在CDB2环境中调用升级:


$ dbupgrade -c“ PDB1” -l / home / oracle / logs

[/u01/app/oracle/product/19/rdbms/admin/catctl.pl]的参数列表
对于Oracle内部使用,仅A = 0
在c = PDB1中运行
不要在C = 0中运行
输入目录d = 0
回声关闭e = 1
模拟E = 0
强制清理F = 0
对数ID i = 0
子进程I = 0
日志目录l = / home / oracle / logs
优先列表名称L = 0
激活升级模式M = 0
SQL进程计数n = 0
SQL PDB进程计数N = 0
开放模式正常o = 0
开始阶段p = 0
结束阶段P = 0
逆序r = 0
自动升级恢复R = 0
脚本s = 0
串行运行S = 0
RO用户表空间T = 0
显示阶段y = 0
调试catcon.pm z = 0
调试catctl.pl Z = 0

catctl.pl版本:[19.0.0.0.0]
           状态:[生产中]
            内置:[RDBMS_19.6.0.0.0DBRU_LINUX.X64_191217]


/ u01 / app / oracle / product / 19 / rdbms / admin / orahome = [/ u01 / app / oracle / product / 19]
/ u01 / app / oracle / product / 19 / bin / orabasehome = [/ u01 / app / oracle / product / 19]
catctlGetOraBaseLogDir = [/ u01 / app / oracle / product / 19]

分析文件/u01/app/oracle/product/19/rdbms/admin/catupgrd.sql

日志文件目录= [/ home / oracle / logs]

catcon :: set_log_file_base_path:所有与catcon相关的输出都将写入[/home/oracle/logs/catupgrd_catcon_17267.lst]

catcon :: set_log_file_base_path:catcon:有关脚本生成的输出,请参见[/home/oracle/logs/catupgrd*.log]文件

catcon :: set_log_file_base_path:catcon:请参见[/home/oracle/logs/catupgrd_*.lst]文件以获取假脱机文件(如果有)


Cpu数量= 2
数据库名称= CDB2
数据库版本= 19.0.0.0.0
PDB并行SQL进程计数= [2]大于或等于CPU计数= [2]
并行PDB升级默认为CPU计数[2]
并行SQL进程计数(PDB)= 2
并行SQL进程计数(CDB $ ROOT)= 4
并行PDB升级= 2
生成的PDB包含项:[PDB3]
CDB $ ROOT打开模式= [打开]
并行PDB升级重置= 1

开始处理PDB(PDB1)
[/ u01 / app / oracle / product / 19 / perl / bin / perl /u01/app/oracle/product/19/rdbms/admin/catctl.pl -c'PDB3'-l / home / oracle / logs -I -i pdb3 -n 2 /u01/app/oracle/product/19/rdbms/admin/catupgrd.sql]

[/u01/app/oracle/product/19/rdbms/admin/catctl.pl]的参数列表
对于Oracle内部使用,仅A = 0
在c = PDB1中运行
不要在C = 0中运行
输入目录d = 0
回声关闭e = 1
模拟E = 0
强制清理F = 0
日志ID i = pdb1
子进程I = 1
日志目录l = / home / oracle / logs
优先列表名称L = 0
激活升级模式M = 0
SQL进程计数n = 2
SQL PDB进程计数N = 0
开放模式正常o = 0
开始阶段p = 0
结束阶段P = 0
逆序r = 0
自动升级恢复R = 0
脚本s = 0
串行运行S = 0
RO用户表空间T = 0
显示阶段y = 0
调试catcon.pm z = 0
调试catctl.pl Z = 0

catctl.pl版本:[19.0.0.0.0]
           状态:[生产中]
            内置:[RDBMS_19.6.0.0.0DBRU_LINUX.X64_191217]


/ u01 / app / oracle / product / 19 / rdbms / admin / orahome = [/ u01 / app / oracle / product / 19]
/ u01 / app / oracle / product / 19 / bin / orabasehome = [/ u01 / app / oracle / product / 19]
catctlGetOraBaseLogDir = [/ u01 / app / oracle / product / 19]

分析文件/u01/app/oracle/product/19/rdbms/admin/catupgrd.sql

日志文件目录= [/ home / oracle / logs]

catcon :: set_log_file_base_path:所有与catcon相关的输出都将写入[/home/oracle/logs/catupgrdpdb3_catcon_17545.lst]

catcon :: set_log_file_base_path:catcon:有关脚本生成的输出,请参见[/home/oracle/logs/catupgrdpdb3*.log]文件

catcon :: set_log_file_base_path:catcon:请参阅[/home/oracle/logs/catupgrdpdb3_*.lst]文件以获取假脱机文件(如果有)


Cpu数量= 2
数据库名称= CDB2
数据库版本= 19.0.0.0.0
PDB3开放模式= [MIGRATE] 
生成的PDB包含:[PDB1]
CDB $ ROOT打开模式= [打开]
[PDB3]中的组件
    已安装[CATALOG CATPROC OWM XDB]
未安装[APEX APS CATJAVA上下文DV EM JAVAVM MGW ODM OLS ORDIM RAC SDO WK XML XOQ]

-------------------------------------------------- ----
阶段[0-107]开始时间:[2020_03_06 14:32:27]
容器列表包括:[PDB1]排除:[无]
-------------------------------------------------- ----
***********执行更改脚本***********
串行阶段#:0 [PDB1]文件:1时间:23s
***************目录核心SQL ***************
串行阶段#:1 [PDB1]文件:5时间:50秒
重新启动阶段#:2 [PDB1]文件:1时间:0秒
***********目录表和视图***********
并行阶段#:3 [PDB1]文件:19时间:27秒
重新启动阶段#:4 [PDB1]文件:1时间:2s
*************目录最终脚本************
串行阶段#:5 [PDB1]文件:7时间:22秒
***************** Catproc Start ****************
串行阶段#:6 [PDB1]文件:1时间:18秒
***************** Catproc类型****************
串行阶段#:7 [PDB1]文件:2时间:13秒
重新启动阶段#:8 [PDB1]文件:1时间:2秒
**************** Catproc表****************
并行阶段:9 [PDB1]文件:67时间:37秒
重新启动阶段#:10 [PDB1]文件:1时间:1秒
************* Catproc套件规格************
串行阶段#:11 [PDB1]文件:1时间:64s
重新启动阶段#:12 [PDB1]文件:1时间:2秒
************** Catproc程序**************
并行阶段:13 [PDB1]文件:94时间:15秒
重新启动阶段#:14 [PDB1]文件:1时间:1秒
并行阶段:15 [PDB1]文件:121时间:15秒
重新启动阶段#:16 [PDB1]文件:1时间:2秒
串行阶段#:17 [PDB1]文件:22时间:9s
重新启动阶段#:18 [PDB1]文件:1时间:1秒
***************** Catproc视图****************
并行阶段:19 [PDB1]文件:32时间:28秒
重新启动阶段#:20 [PDB1]文件:1时间:2秒
串行阶段#:21 [PDB1]文件:3时间:18秒
重新启动阶段#:22 [PDB1]文件:1时间:2秒
并行阶段:23 [PDB1]文件:25时间:227秒
重新启动阶段#:24 [PDB1]文件:1时间:2秒
并行阶段:25 [PDB1]文件:12时间:131秒
重新启动阶段#:26 [PDB1]文件:1时间:1秒
串行阶段#:27 [PDB1]文件:1时间:0s
串行阶段#:28 [PDB1]文件:3时间:8s
串行阶段#:29 [PDB1]文件:1时间:0s
重新启动阶段#:30 [PDB1]文件:1时间:2秒
*************** Catproc CDB视图**************
串行阶段#:31 [PDB1]文件:1时间:6s
重新启动阶段#:32 [PDB1]文件:1时间:2秒
串行阶段#:34 [PDB1]文件:1时间:0s
***************** Catproc公共小车*****************
串行阶段#:35 [PDB1]文件:294时间:21秒
串行阶段#:36 [PDB1]文件:1时间:0s
重新启动阶段#:37 [PDB1]文件:1时间:2秒
串行阶段#:38 [PDB1]文件:6时间:8s
重新启动阶段#:39 [PDB1]文件:1时间:1秒
*************** Catproc数据泵***************
串行阶段#:40 [PDB1]文件:3时间:42秒
重新启动阶段#:41 [PDB1]文件:1时间:2秒
****************** Catproc SQL ******************
并行阶段#:42 [PDB1]文件:13时间:116秒
重新启动阶段#:43 [PDB1]文件:1时间:1秒
并行阶段:44 [PDB1]文件:11时间:10秒
重新启动阶段#:45 [PDB1]文件:1时间:1秒
并行阶段:46 [PDB1]文件:3时间:8秒
重新启动阶段#:47 [PDB1]文件:1时间:1秒
*************最终的Catproc脚本************
串行阶段#:48 [PDB1]文件:1时间:16s
重新启动阶段#:49 [PDB1]文件:1时间:0秒
**************最终RDBMS脚本**************
串行阶段#:50 [PDB1]文件:1时间:9s
************升级组件开始***********
串行阶段#:51 [PDB1]文件:1时间:7s
重新启动阶段#:52 [PDB1]文件:1时间:1秒
**********升级Java和非Java *********
串行阶段#:53 [PDB1]文件:2时间:23s
*****************升级XDB ****************
重新启动阶段#:54 [PDB1]文件:1时间:1秒
串行阶段#:56 [PDB1]文件:3时间:12s
串行阶段#:57 [PDB1]文件:3时间:9s
并行阶段:58 [PDB1]文件:10时间:10秒
并行阶段:59 [PDB1]文件:25时间:12秒
串行阶段#:60 [PDB1]文件:4时间:14秒
串行阶段#:61 [PDB1]文件:1时间:0秒
串行阶段#:62 [PDB1]文件:32时间:10秒
串行阶段#:63 [PDB1]文件:1时间:0秒
并行阶段:64 [PDB1]文件:6时间:13秒
串行阶段#:65 [PDB1]文件:2时间:21秒
串行阶段#:66 [PDB1]文件:3时间:27秒
****************升级ORDIM ***************
重新启动阶段#:67 [PDB1]文件:1时间:2秒
串行阶段#:69 [PDB1]文件:1时间:8s
并行阶段:70 [PDB1]文件:2时间:9s
重新启动阶段#:71 [PDB1]文件:1时间:2秒
并行阶段:72 [PDB1]文件:2时间:9s
串行阶段#:73 [PDB1]文件:2时间:8s
*****************升级SDO ****************
重新启动阶段#:74 [PDB1]文件:1时间:1秒
串行阶段#:76 [PDB1]文件:1时间:8s
串行阶段#:77 [PDB1]文件:2时间:8s
重新启动阶段#:78 [PDB1]文件:1时间:1秒
串行阶段#:79 [PDB1]文件:1时间:8s
重新启动阶段#:80 [PDB1]文件:1时间:2秒
并行阶段:81 [PDB1]文件:3时间:9s
重新启动阶段#:82 [PDB1]文件:1时间:1秒
串行阶段#:83 [PDB1]文件:1时间:8s
重新启动阶段#:84 [PDB1]文件:1时间:2秒
串行阶段#:85 [PDB1]文件:1时间:8s
重新启动阶段#:86 [PDB1]文件:1时间:2秒
并行阶段:87 [PDB1]文件:4时间:9s
重新启动阶段#:88 [PDB1]文件:1时间:2秒
串行阶段#:89 [PDB1]文件:1时间:8s
重新启动阶段#:90 [PDB1]文件:1时间:1秒
序列号:91 [PDB1]文件:2时间:8s
重新启动阶段#:92 [PDB1]文件:1时间:2秒
串行阶段#:93 [PDB1]文件:1时间:6s
重新启动阶段#:94 [PDB1]文件:1时间:2秒
*******升级ODM,WK,EXF,RUL,XOQ *******
串行阶段#:95 [PDB1]文件:1时间:6s
重新启动阶段#:96 [PDB1]文件:1时间:2秒
***********最终组件脚本***********
串行阶段#:97 [PDB1]文件:1时间:8s
*************最终升级脚本************
串行阶段#:98 [PDB1]文件:1时间:122秒
******************* 移民 ******************
串行阶段#:99 [PDB1]文件:1时间:6s
***结束PDB应用程序升级前关闭***
串行阶段#:100 [PDB1]文件:1时间:7s
串行阶段#:101 [PDB1]文件:1时间:4秒
串行阶段#:102 [PDB1]文件:1时间:6s
*****************升级后的********************
串行阶段#:103 [PDB1]文件:1时间:117秒
**************** 总结报告 ****************
串行阶段#:104 [PDB1]文件:1时间:6s
***关机后结束PDB应用程序升级**
串行阶段#:105 [PDB1]文件:1时间:6s
串行阶段#:106 [PDB1]文件:1时间:5s
串行阶段#:107 [PDB1]文件:1时间:0s

-------------------------------------------------- ----
阶段[0-107]结束时间:[2020_03_06 14:58:28]
容器列表包括:[PDB1]排除:[无]
-------------------------------------------------- ----

总计时间:1561s [PDB1]

 日志文件:(/home/oracle/logs/catupgrdpdb3*.log)

升级摘要报告位于:
/home/oracle/logs/upg_summary.log

     时间:1636s对于PDB

总计时间:1636s 

 日志文件:(/home/oracle/logs/catupgrd*.log)


总计升级时间:[0d:0h:27m:16s]
复制

之后,我重新编译。

sqlplus /作为sysdba

SQL> Alter可插入数据库PDB1打开;
SQL> alter可插入数据库PDB1保存状态;
SQL>退出

$ ORACLE_HOME / perl / bin / perl $ ORACLE_HOME / rdbms / admin / catcon.pl -n 1 -c'PDB1'-e -b utlrp -d $ ORACLE_HOME / rdbms / admin utlrp.sql
复制

做完了

最后,我可以调整升级的PDB的时区。由于catcon.pl不提供直接输出,因此以后我将不得不检查日志文件。

$ $ ORACLE_HOME / perl / bin / perl $ ORACLE_HOME / rdbms / admin / catcon.pl -n 1 -c'PDB1'-l / home / oracle / logs -b utltz_upg_check -d $ ORACLE_HOME / rdbms / admin utltz_upg_check.sql

catcon :: set_log_file_base_path:所有与catcon相关的输出都将写入[/home/oracle/logs/utltz_upg_check_catcon_31522.lst]

catcon :: set_log_file_base_path:catcon:有关脚本生成的输出,请参见[/home/oracle/logs/utltz_upg_check*.log]文件

catcon :: set_log_file_base_path:catcon:请参见[/home/oracle/logs/utltz_upg_check_*.lst]文件以获取假脱机文件(如果有)

catcon.pl:成功完成
复制
$ $ ORACLE_HOME / perl / bin / perl $ ORACLE_HOME / rdbms / admin / catcon.pl -n 1 -c'PDB1'-l / home / oracle / logs -b utltz_upg_apply -d $ ORACLE_HOME / rdbms / admin utltz_upg_apply.sql
catcon :: set_log_file_base_path:所有与catcon相关的输出都将写入[/home/oracle/logs/utltz_upg_apply_catcon_31826.lst]

catcon :: set_log_file_base_path:catcon:请参阅[/home/oracle/logs/utltz_upg_apply*.log]文件以获取脚本生成的输出

catcon :: set_log_file_base_path:catcon:请参阅[/home/oracle/logs/utltz_upg_apply_*.lst]文件以获取假脱机文件(如果有)

catcon.pl:成功完成
复制

最终检查:

sqlplus /作为sysdba
复制
更改系统集“ _exclude_seed_cdb_view” = false范围=两者;

从容器(SYS.PROPS $)中选择value $,con_id,其中NAME ='DST_PRIMARY_TT_VERSION'的顺序为2;

VALUE $ CON_ID
------ ------
32 1
32 2
32 3
复制

可以了,好了!

原文链接:https://mikedietrichde.com/2020/03/06/upgrade-testing-online-clone-a-pdb-to-19c/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论