随着Oracle 18c的发布,同时也带来了众多走心的新特性,着实吸引了大家的眼球,加之近期官方MOS的文章关于低版本的数据库dblink所存在着的潜在风险(详见MOS ID:2361478.1MOS ID:2335265.1)。因此,更多用户都希望能尽快升级至Oracle 18c,根据官方发布的版本,目前18c的介质只支持Exadata和Oracle Data Appliance环境。本文旨在一步一步通过实际操作来介绍升级的整个过程。

根据官方的升级路线图,只有11.2.0.3及以上的版本才可以直接升级至18c,因此,本次升级前环境为11.2.0.4 RAC

具体环境如下:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java

一、集群grid升级

下载最新的18c griddb 的介质并上传至主机1上。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_02

备份11.2.0.4集群的ocr注册信息

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_03

检测环境是否符合升级要求:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_04

启动gridSetup.sh开始升级grid(由于篇幅限制以下只粘贴部分需要注意的过程图片):

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_05

选择升级grid选项:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_06

会自动发现两个集群节点,选择两个节点:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_07


根据检测结果项,本环境中,部分项可以忽略(例如:NTP,DNS,以及硬件内存需求等)。

大部分项目可以自动修复(例如:一些参数等方面的要求)

但是最低要求的补丁1761780721255373建议自行手工去安装,否则后续的升级过程可能无法成功。(具体补丁安装参见补丁readme


干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_08

安装完补丁后重新检测环境,本环境忽略以上其他检测结果项,继续安装。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_09

按照要求,两个节点分别执行rootupgrade.sh:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_10

继续升级安装:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_11

Oracle 18c中,grid需要一个额外的资料数据库MGMT,建议手工为grid创建此数据库。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_12

继续,直到18c grid升级完成。


二、18c rdbms 升级

1.        启动db的安装界面:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_13

选择只配置软件(其实选项下面有提示)

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_14

选择Oracle RAC集群数据库类型:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_15


选中两个服务器节点:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_16


自动检测,大部分检测项都可以自动fixup,有关硬件、NTPSCAN等类型的检测项目在此环境中可以忽略即可。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_17

直到安装结束,并执行相关root.sh脚本即可,至此18c rdbms for rac 安装完毕。


三、升级集群数据库

启动dbua进行数据库升级:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_18


选择需要升级的数据库,并输入sysdba的密码:

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_19


自动进行升级之前的检测,并处理检测出来的问题(只需要处理Fixablemanual类型的即可,其他类型的检测结果项一般可以自动修复)。主要需要手工处理的为:删除OLAP,EM DBCONSOLE并升级APEX等。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_20

处理完毕后,重新检测,发现已经没有需要手工处理的检测项,继续

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_21

建议同时选择并行升级,处理无效对象,更新时区等。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_22

在此步,升级前可以选择创建闪回点,或者RMAN备份,本次暂未选择备份功能。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_23

升级前检查所有环境参数等。

干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_24

查看升级后结果,发现数据库已经成功升级为18c.干货!  一步步教你从Oracle 11gR2 RAC 升级至18c_Java_25

验证集群中两个数据库实例都已正常,且ORACLE_HOME也已经是18c版本的ORACLE_HOME

 至此,Oracle 18c RAC集群数据库已经升级完成,总体升级过程比较简单,自动化程度比其他版本更高,很多的非自动处理的结果项也都提供了处理流程,也更加人性化。

 由于篇幅限制,部分图片以及脚本未能提供。小伙伴们可以试一试,升级之后,就可以亲自体验那些“走心的新特性啦!

编辑:萧宇