暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

19c RAC打补丁

原创 ming 2023-02-23
1686

参考文章: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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论