Oracle 19c升级路径与Q&A

1关于19c升级实验环境和脚本
实验环境不需要预约,请访问下边的URL链接,下载实验虚机和查阅实验脚本。
https://mikedietrichde.com/database-upgrade-hands-on-lab-oracle-18c-and-19c/hol-19c-main-index-page-oracle-database-19c-hands-on-lab/

2关于19c补丁、RU和RUR的问题
从12.2.0.2开始,Oracle Database开始采用RU(Release Update)和RUR(Release Update Revision)的方式发布补丁。
RU:季度补丁包,包含查询优化器修复、功能修复、安全修复、回退修复。
RUR:季度补丁包的修复,包含安全修复、回退修复。
RU和RUR的切换:可以来回切换,但是新的patch必须是之前patch的超集(新的patch包含了之前patch的所有修复)。
建议阅读MOS文档:Release Update介绍以及FAQ (Doc ID 2289879.1)https://support.oracle.com/epmos/faces/DocContentDisplay?id=2285040.1

2.1怎么确认RUR之间的切换关系?有包含矩阵说明么?
最基础的判断原则是新的patch必须是之前patch的超集(新的patch包含了之前patch的所有修复)。另外可以依据以下的简化规则判断。
现有的版本是19.A.B,想应用的版本是19.C.D
如果C+D≥A+B,并且C≥A,可以从19.A.B切换到19.C.D否则不可以切换

2.2如果现阶段已经是19.4,想应用补丁,是应该应用19.6,还是19.4.2,这两种应用补丁有什么区别?
在19.4.0上应用19.6.0和19.4.2都可以。Oracle推荐应用最新的Updates,这样可以避免很多已知的问题。但是如果认为使用19.4.0已经达到稳定状态,希望优先考虑安全更新而不是功能修复,那么可以选择19.4.2,但是有可能会碰到已在最新Update中包含的已知问题。
19.4.2是基于19.4.0补丁包的修复,只会包含19.4.0以后的安全补丁,以及对19.4.0中的功能修复的回退修复。
而19.6.0与19.4.2相比,会有更多的功能修复内容。

2.3假如目前是19.4.2这个RUR版本,是否可以升级19.5.0/19.5.1/19.6.0?
不可以从19.4.2->19.5.0,19.5.0中不包含19.4.2新增的安全修复和回退修复。
可以从19.4.2->19.5.1,19.5.1中已经包含了19.4.2所有新增的安全修复和回退修复。
可以从19.4.2->19.6.0,19.6.0中已经包含了19.4.2所有新增的安全修复和回退修复。

2.4从 Update 转换向相同季度发布的 Revision 会怎样?比如,从 18.5.0到18.4.1? 虽然后两位的数的和都是5,但是从 high-priority non-security fixes 的角度来看,却是倒退了一个季度?
不可以从Update 转换成相同季度发布的 Revision,例如从18.5.0到18.4.1是不可以的。
虽然它们都是相同季度发布,但是在18.4.1中不包含18.5.0中的功能修复内容,也就是说18.4.1不是18.5.0的超集。

2.5RUR是在RU的基础上再次修复,还是这2个是独立的?
RUR是在上一个季度的RU基础上进行修复。例如19.4.1是在19.4.0基础上进行修复,而19.4.2是在19.4.1基础上进行修复。

2.6新发布的RU 是否包含了上一版本的RUR? 谢谢
新发布的RU中会包含上一版本的RUR。例如19.6.0中会包含19.5.1和19.4.2中的安全修复和回退修复。

2.7为什么到19以后第二位表示补丁版本了,而11g的补丁版本不是11.1.0.4.xxx吗?
Oracle从18c开始采用年度数据库软件发布的技术支持策略,并开始使用新的数据库软件版本编号系统。新的版本编号系统会使用3个数字编码格式:年.更新.发布 (Year.Update.Revision)。
软件是哪年发布的 (第一个部分)
哪个季节发布的Update (第二个部分)
哪个季节发布的Revision (第三个部分)

2.8升级到19.5还是19.6更好?
Oracle推荐保持应用最新的Updates,这样可以避免很多已知的问题。并且可以避免申请很多小补丁,并显著降低更多的补丁维护的操作。
如果已达到稳定状态,并希望优先考虑安全更新而不是功能修复。在这种情况下,可以选择应用 Revisions,但是有可能会碰到已在最新Update中包含的已知问题。

3关于Data Guard滚动升级
3.1Data Guard的滚动升级对于主备数据库版本的要求如何?
使用Data Guard的滚动升级要求主备数据库版本至少是10.1.0.3。

3.2Data Guard 不是要求同版本的数据库么,现在可以跨版本了吗?
通常Data Guard的部署采用Physical Standby模式,这种方式要求主备是相同版本的数据库。
Data Guard滚动升级过程中是先把备库转换为Logical Standby模式,这种数据复制方式的主备库可以是不同版本。

3.3logical standby升级的方式中,为什么后面要flashback?
Data Guard滚动升级开始后,首先是将备库从Physical Standby模式转换为Logical Standby模式,之后备库上所有的数据同步都是通过Logical SQL apply执行的。主备库在磁盘上的数据库结构在数据块级别不再是完全一样的。
当备库完成升级,转换为主库后,需要在转换后的主备库之间重新构建Physical Standby模式。
因此需要将原来的主库flashback到最初的还原点,让主备库具备完全相同的数据块基础,然后再通过Physical Standby模式在原来的主库上同步后来的变化。

3.4DG滚动升级中,逻辑备库还能转换回去物理备库?是新版本支持的吗?
DG逻辑备库和物理备库的转换在Oracle 10g已经支持。

3.5AIX到linux 迁移能用DG吗?
不支持。可以使用GoldenGate实现零停机迁移。

3.6请问flashback 可以进行跨版本的闪回么?比如upgrade 11g到19c,升级完成后可以flashback到11g的版本么?flashback会把软件也一起回退吗?
可以。如果升级前创建了可保证的还原点,升级11g到19c后,可以flashback回11g。软件不会回退,直接更换数据库软件主目录即可。

3.7DG环境源端是12.1.0.2,目标端先升到19C,正常运行一段时间后再升源端可以吗
可以正常运行一段时间后再升级源端。
但是目标端升级到19c之后并转换为主库后,不建议启用SQL Apply从19c主库向12.1.0.2备库同步数据。
可参阅MOS文档:Using Transient Logical Rolling Upgrade for Database Migration (Doc ID 2350945.1)

4关于GoldenGate
4.1OGG如果做长期容灾的话是不是不太适合?维护量是不是太大?
如果主库和备库可以采用相同的操作系统平台和数据库版本,建议使用Active Data Guard进行容灾。
如果因为运维或业务的原因,主库和备库是不同的操作系统或数据库版本,需要用GoldenGate来做数据库容灾。
与使用ADG相比,用GoldenGate做容灾,在初期的维护量相对会大一些,当运行稳定后就会好很多。

4.2AIX 11.2.0.4 迁移到linux X86上 19c版本,通过OGG方式迁移,用何种方式进行初始化?
如果数据量不大,可以用Data Pump指定SCN进行初始化。如果数据量较大,建议用XTTS进行初始化。

4.3GoldenGate 从19c到11g也可以么?
可以,GoldenGate支持异构跨版本的数据实时复制。

4.4现有的OGG两边的数据库可以先升级一侧的,然后升级另外一侧的吗?
可以,GoldenGate支持异构跨版本的数据实时复制。
先升级复制目标端的数据库,然后通过GoldenGat从源端低版本的数据库向目标端高版本的数据库实时复制数据。
在升级时间点,停止应用与源库的连接,将应用连接到目标端高版本数据库进行业务处理,然后再来升级源库。

5关于RAC升级
5.1RAC环境怎么升级数据库?
RAC环境下首先将CLUSTER_DATABASE参数设置为FALSE,然后在一个节点升级数据库,升级完成后使用srvctl upgrade database升级Clusterware中的数据库配置,最后将CLUSTER_DATABASE参数改回TRUE,启动数据库。

5.2RAC模式下需要在每个节点上去执行相同的升级操作?
不需要。RAC模式下只需要在一个节点执行数据库升级,升级完成后需要更新Clusterware中的数据库配置。

5.3单机和RAC环境升级19.6需要更新哪些补丁?
单机升级需要19.3 DB基础版本+19.6 DB补丁+OJVM补丁。
如果是RAC环境,而且同时升级GI,需要19.3 GI和DB基础版本+19.6 GI和DB补丁+ OJVM补丁。

6关于升级版本、升级路径和操作系统环境
6.1Oracle 19c 升级可以安装在SUSE 11上面么?官方是否认可?
目前19c只对SUSE 12和SUSE 15进行了认证,但是没有对SUSE 11进行过19c的认证。
可以从support.oracle.com查询确认认证信息。

6.2什么是直接升级?哪些版本可以直接升级到19c?
直接升级是指在不迁移数据库中数据的前提下直接升级数据库版本。
11.2.0.4、12.1.0.2、12.2.0.1、18c这四个版本可以直接升级到19c。

6.311.2.0.4现在可以直接升级到19.6版本么
可以。
首先安装19.3的基础版本软件,然后将软件升级到19.6版本。
准备好19c软件环境后,按照升级步骤直接升级11.2.0.4的数据库就行。

6.4请问11.2.0.4的19c升级模式,适用于 11.2.0.3版本么?
11.2.0.3不能直接升级到19c,可以选择间接升级或者迁移升级的方式。

6.5如果对停机窗口有要求的化,11.2.0.3升级到19c,是通过中间版本11.2.0.4在原地升比较好,还是通过迁移好?
如果对停机窗口有要求,可以考虑通过TTS增量备份进行迁移升级,或者使用GoldenGate进行零停机迁移升级。这样可以避免两次升级,也可以控制停机窗口。

7关于TTS
7.1有没有11g 使用XTTS升级19c的操作手册?
建议参阅MOS文档:Upgrading a Database Using Transportable Tablespaces (TTS) (Doc ID 1457743.1)和Oracle 19c Database Administrator’s Guide中Transporting Data章节。https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html

7.211.2.0.4迁移升级到19.6,可以使用XTTS方式吗?
可以。10.2及以上版本就可以使用XTTS进行迁移升级。

7.3TTS增量备份支持是指升级源版本11.2.0.4么?
是的。升级源版本是11.2.0.4及以上支持TTS增量备份。

7.4TTS支持pdb吗?
支持。

7.5XTTS迁移通常会遇到那些典型问题?
关于XTTS迁移的典型问题和最佳实践参阅以下MOS文档。
Upgrading a Database Using Transportable Tablespaces (TTS) (Doc ID 1457743.1)
Best Practices for Using Transportable Tablespaces (TTS) (Doc ID 1457876.1)

7.6XTTS方式迁移升级,与数据泵或GoldenGate相比,会对升级后的数据库性能有影响吗?
升级的数据库性能建议通过Database Replay、SQL Performance Analyzer、SQL Plan Management、SQL Tuning Advisor等升级测试工具进行优化和管理。

8关于升级的兼容性
8.111.2.0.4升级到19.6,应用程序使用jdk1.7,升级后是否需要替换jdk包?
建议升级到JDK8以上。
请参阅MOS文档Starting With Oracle JDBC Drivers - Installation, Certification, and More! (Doc ID 401934.1)

8.2迁移升级需要考虑compatible的延期设置么?
不需要考虑。只有在本地直接升级时需要考虑。

8.3从12.1.0.2升级到19C,应用的存储过程是否全兼容,哪些地方需要改写代码?
19c向下完全兼容12.1.0.2。但是建议升级前对应用进行全面回归测试。

8.4有没有相关文档说明哪些11.2.0.4版本里的oracle函数(一些开发会用到的函数)在19c会废弃?
建议参阅以下文档:
19c Database Upgrade Guide中Behavior Changes, Deprecated and Desupported Features for Oracle Database章节。
https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/behavior-changes-deprecated-desupport-oracle-database.html
19c PL/SQL Packages and Types Reference中Desupported Features章节。
19c SQL Language Reference中Desupported Features章节。

9涉及多租户架构的升级
9.1non-cdb to cdb是不是先建一个新的cdb然后吧non-cdb插入到新的cdb中?
是的。首先创建一个新的CDB,然后将原来的NON-CDB升级,再插入到新的CDB中。

9.2cdb是不是要和pdb的版本一样,否则pdb会自动升级到cdb的版本?
在兼容的情况下,PDB版本可以低于CDB版本。
如果不执行升级操作,PDB不会自动升级。

9.3CDB原地升级,是在cdb下执行,还是pdb下?还是都要执行?是否可以单独升级某个PDB?
升级操作是在CDB级别执行。
如果是全部升级,升级过程首先会升级CDB R O O T , 然 后 升 级 P D B ROOT,然后升级PDB ROOTPDBSEED和其他的PDB。
如果希望单独升级PDB,可以在完成CDB$ROOT升级后,用升级命令指定单独升级某个PDB或多个PDB。

9.4如果pdb比cdb的版本高的话,迁移是不是会失败,迁移不过去,
是的,在兼容性检查时就会提示,迁移也会失败。

9.511.2.0.3多个non cdb能否通过升级整合成一个19c的cdb
可以。
方式1:搭建19c CDB,创建PDB,使用Data Pump或TTS方式将数据从Non-CDB迁移到对应的PDB。
方式2:先升级Non-CDB,例如11.2.0.3->11.2.0.4->19c,然后使用插入PDB方式进行整合。

10关于授权和服务
10.112.2升级到19C,需不需要再重新购买授权?
如果一直在正常购买Oracle数据库标准服务,不需要重新购买授权。

10.2请问11204多出的market driven阶段,要想得到支持,是要收费吗?除了收费还有别的要求没
11.2.0.4的Market-Driven Support由Oracle Advanced Customer Services提供,详情请参阅以下文档。
https://www.oracle.com/a/ocom/docs/ds-mds-database-11g-r2.pdf

11其他
Database Replay除了录制,还可以人为定义压力么?或者对于已经录制的set,可以对其的压力情况进行人为调整么?
可以进行人为调整,Database Replay在重放时可以根据需求对重放的负荷进行调整。

19C 集群在使用opatchauto打PSU会遭遇java.io.FileNotFoundException: /u01/app/oraInventory/ContentsXML/oui-patch.xml (权限不够)这个问题?这是正常现象么?
建议先对文件权限和路径权限进行核实,确认操作用户对该文件的正常访问。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值