📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 📣 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。
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
✨ 2.1 当前DB版本
SYS@orcl()> set linesize 300
SYS@orcl()> select comp_id,status,version from dba_registry;
[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
📣 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 ./
📣 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
📣 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@OEL7 ~]$ cd $ORACLE_HOME/OPatch
[oracle@OEL7 OPatch]$ pwd
/u01/app/oracle/product/19.3.0/db_1/OPatch
[oracle@OEL7 OPatch]$ ./datapatch -verbose
📣 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;
SQL> col version for a25
SQL> col comments for a80
SQL> select action_time,version,comments from dba_registry_history;
SQL> select comp_id,status,version from dba_registry;
📣 9.编译无效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql