文章目录

  • 前言
  • 📣 1.RU介绍
  • 📣 2.当前环境
  • ✨ 2.1 当前DB版本
  • ✨ 2.2 升级检查
  • 📣 3.升级OPatch
  • ✨ 3.1 OPatch升级
  • ✨ 3.2 验证Oracle Inventory
  • 📣 4.检查补丁冲突
  • 📣 5.自动补丁安装
  • 📣 6.检查补丁
  • 📣 7.加载SQL
  • 📣 8.查看版本变化
  • 📣 9.编译无效对象


前言


本篇介绍了Oracle 19C 单机环境升级RU(19.3升级至19.12)的详细过程


📣 1.RU介绍

Oracle在每年的1月,4月,7月和10月每个季度发布一个RU。为了使客户能够在其环境稳定之后即刻获得最新的安全相关修复,将在每年的1月,4月,7月,10月为最近的两个RU提供RUR。

Oracle 19C 单机环境升级RU(19.3升级至19.12)_数据库

RU(Release Updates)是每一个季度的版本升级。包括:最新的BUG修复、最新的安全漏洞补丁、最新添加的功能。
以19c为例,对应的升级版本升级路线是(19.1.0.0.0->19.2.0.0.0->19.3.0.0.0 … )

RUR是对RU的修订版本,包括:最新的BUG修复、最新的安全漏洞补丁,这里并没有添加最新的功能。并且只有对应RU版本的修订版。比如,在2020年7月,除了会发布RU(19.8.0.0.0)回会发布上个季度的.1补丁(19.7.1.0)和上上个季度的.2补丁(19.6.2.0)。

📣 2.当前环境

系统:Oracle Linux Server release 7.9
环境:单实例
课题:oracle 19.3升级至19.12
说明:要升级19.12,OPatch版本需大于12.2.0.1.25 

说明:
19.12 DB的RU编号是:32904851
GI的RU编号是:32895426

https://updates.oracle.com/download/6880880.html
https://updates.oracle.com/download/32904851.html

Oracle 19C 单机环境升级RU(19.3升级至19.12)_加载_02

✨ 2.1 当前DB版本

SYS@orcl()> set linesize 300
SYS@orcl()> select comp_id,status,version from dba_registry;

Oracle 19C 单机环境升级RU(19.3升级至19.12)_数据库_03

[oracle@OEL7 ~]$ sqlplus -v
SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

[oracle@OEL7 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue May 9 06:47:53 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.

✨ 2.2 升级检查

[oracle@OEL7 ~]$ cd $ORACLE_HOME
[oracle@OEL7 db_1]$ cd OPatch/

[oracle@OEL7 OPatch]$ ./opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
OPatch succeeded.

📣 3.升级OPatch

✨ 3.1 OPatch升级

[oracle@OEL7 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.

[root@OEL7 ~]# cd /opt
[root@OEL7 opt]# chown oracle:oinstall p6880880_190000_Linux-x86-64.zip
[root@OEL7 opt]# chmod 755 p6880880_190000_Linux-x86-64.zip
、
[oracle@OEL7 ~]$ cd $ORACLE_HOME
[oracle@OEL7 db_1]$ mv OPatch/ OPatchbak
[oracle@OEL7 db_1]$ unzip /opt/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
以下方法可以覆盖原有的OPatch
[oracle@OEL7 db_1]$ unzip -q -o /opt/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME

[oracle@OEL7 db_1]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.36
OPatch succeeded.

✨ 3.2 验证Oracle Inventory

##验证Oracle Inventory的有效性
[oracle@OEL7 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_04

📣 4.检查补丁冲突

[root@OEL7 ~]# cd /opt
[root@OEL7 opt]# unzip p32904851_190000_Linux-x86-64.zip
[root@OEL7 opt]# chown -R oracle:oinstall 32904851
[root@OEL7 opt]# chmod -R 755 32904851

[root@OEL7 ~]# su - oracle
[oracle@OEL7 ~]$ cd /opt/32904851/
[oracle@OEL7 32904851]$ ls
custom  etc  files  README.html  README.txt
[oracle@OEL7 32904851]$ pwd
/opt/32904851

[oracle@OEL7 32904851]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_05

📣 5.自动补丁安装

说明:apply前关闭数据库、监听、以及oracle相关进程
[oracle@OEL7 ~]$ cd /opt/32904851/
[oracle@OEL7 32904851]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.3.0/db_1

[oracle@OEL7 32904851]$ $ORACLE_HOME/OPatch/opatch apply

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_06

📣 6.检查补丁

[oracle@OEL7 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
[oracle@OEL7 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
32904851;Database Release Update : 19.12.0.0.210720 (32904851)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
OPatch succeeded.

[oracle@OEL7 ~]$ sqlplus -version
SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.12.0.0.0

📣 7.加载SQL

说明:此步骤为加载变化的SQL到数据库,RAC环境只需在节点1执行,此过程很慢
[oracle@OEL7 ~]$ sqlplus /nolog
SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup

Oracle 19C 单机环境升级RU(19.3升级至19.12)_加载_07


Oracle 19C 单机环境升级RU(19.3升级至19.12)_SQL_08

[oracle@OEL7 ~]$ cd $ORACLE_HOME/OPatch
[oracle@OEL7 OPatch]$ pwd
/u01/app/oracle/product/19.3.0/db_1/OPatch
[oracle@OEL7 OPatch]$ ./datapatch -verbose

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_09

📣 8.查看版本变化

SQL> col status for a10
SQL> col action for a10
SQL> col action_time for a30
SQL> col desctiption for a60
SQL> set line 200
SQL>select patch_id,patch_type,action,status,action_time,description 
from dba_registry_sqlpatch;

Oracle 19C 单机环境升级RU(19.3升级至19.12)_加载_10

SQL> col version for a25
SQL> col comments for a80
SQL> select action_time,version,comments from dba_registry_history;

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_11

SQL> select comp_id,status,version from dba_registry;

Oracle 19C 单机环境升级RU(19.3升级至19.12)_oracle_12

📣 9.编译无效对象

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog 
SQL> CONNECT / AS SYSDBA 
SQL> @utlrp.sql

Oracle 19C 单机环境升级RU(19.3升级至19.12)_SQL_13