参考文章:https://blog.csdn.net/hbhe0316/article/details/120794490
查看当前环境
[oracle@dbwr1 OPatch]$ crsctl query crs softwareversion
Oracle Clusterware version on node [dbwr1] is [19.0.0.0.0]
[oracle@dbwr1 OPatch]$ crsctl query crs releaseversion
Oracle High Availability Services release version on the local node is [19.0.0.0.0]
Oracle High Availability Services release version on the local node is [19.0.0.0.0]
[oracle@dbwr1 OPatch]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[oracle@dbwr1 OPatch]$ /u01/app/oracle/product/19c/db_1/OPatch/opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
[oracle@dbwr1 ~]$ cat .bash_profile
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=oradbwr
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
alias grid='. /home/oracle/grid.env'
alias db='. /home/oracle/db.env'
[oracle@dbwr1 ~]$ alias
alias db='. /home/oracle/db.env'
alias grid='. /home/oracle/grid.env'
[oracle@dbwr1 ~]$ cat db.env
export ORACLE_SID=oradbwr1
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
[oracle@dbwr1 ~]$ cat grid.env
export ORACLE_SID=+ASM1
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
升级OPatch,两边都需要升级
升级oracle用户Opatch
[oracle@dbwr1 OPatch]$ db
[oracle@dbwr1 OPatch]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
[oracle@dbwr1 ~]$ cd $ORACLE_HOME
[oracle@dbwr1 db_1]$ mv OPatch/ Opatchbak
[oracle@dbwr1 tmp]$ unzip /tmp/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@dbwr1 tmp]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.36
OPatch succeeded.
升级grid用户Opatch
[oracle@dbwr1 db_1]$ grid
[oracle@dbwr1 db_1]$ cd $ORACLE_HOME
[oracle@dbwr1 grid]$ pwd
/u01/app/19c/grid
[oracle@dbwr1 grid]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
[root@dbwr1 grid]# mv OPatch/ Opatchbak
[root@dbwr1 grid]# unzip /tmp/p6880880_190000_Linux-x86-64.zip -d /u01/app/19c/grid
[root@dbwr1 grid]# chown -R oracle.oinstall OPatch/
[oracle@dbwr1 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.36
OPatch succeeded.
验证Oracle Inventory的有效性
grid/oracle用户下分别执行
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
上传19.18 RU包
p34762026_190000_Linux-x86-64.zip为grid的升级包
p34765931_190000_Linux-x86-64.zip为oracle的升级包
[root@dbwr1 sf_software]# unzip p34762026_190000_Linux-x86-64.zip -d /tmp/34762026
[root@dbwr1 sf_software]# unzip p34765931_190000_Linux-x86-64.zip -d /tmp/34765931
检查patch是否有冲突
grid:
GI包含多个包,需要逐个检查
[oracle@dbwr1 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/34762026/34762026/3357xxxx
db:
[oracle@dbwr1 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /tmp/34765931/34765931
安装前分析
[root@dbwr1 tmp]# /u01/app/19c/grid/OPatch/opatchauto apply /tmp/34762026/34762026 -analyze
升级GI
对GI HOME 进行patch:
(1) 升级过程会自动关闭和启动集群。
(2) 先升级节点1 grid,再升级节点2 grid。
[root@dbwr1 ~]# /u01/app/19c/grid/OPatch/opatchauto apply /tmp/34762026/34762026 -oh /u01/app/19c/grid/
[oracle@dbwr1 ~]$ grid
[oracle@dbwr1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
34863894;TOMCAT RELEASE UPDATE 19.0.0.0.0 (34863894)
34768569;ACFS RELEASE UPDATE 19.18.0.0.0 (34768569)
34768559;OCW RELEASE UPDATE 19.18.0.0.0 (34768559)
34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931)
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)
升级 DB RU (RELEASE UPDATE) 补丁
说明:由于 GI RU 包含 DB RU,所以 RAC 环境升级 DB 时,还将使用此 Patch 即可。
说明: (两个节点都要执行)
(1) 升级过程会自动关闭和启动集群。
(2) 先升级节点1 database,再升级节点2 database。
[root@dbwr1 ~]# /u01/app/oracle/product/19c/db_1/OPatch/opatchauto apply /tmp/34765931/34765931 -oh /u01/app/oracle/product/19c/db_1
[oracle@dbwr1 ~]$ db
[oracle@dbwr1 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
OPatch succeeded.
更新数字字典
$ORACLE_HOME/OPatch/datapatch -verbose
==注意== :
上面说了依次打减少了停机时间,但是停机时间还是需要的,就是在这里的运行datapatch的时间。这个步骤是升级数据字典,针对整个database的数据字典,因此只需在一个节点上跑就可以了。主要注意的是,如果是cdb模式,需要 alter pluggable database all open,打开所有的pdb之后,再运行datapatch。
处理无效对象
sys@ORADBWR> select status,count(*) from dba_objects group by status;
sys@ORADBWR> @?/rdbms/admin/utlrp
卸载补丁
两个节点都需要执行
/u01/app/19c/grid/OPatch/opatchauto rollback /tmp/34762026/34762026
To patch the Grid home and all Oracle RAC database homes of the same version
/u01/app/19c/grid/OPatch/opatchauto apply /tmp/34762026/34762026




