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

Oracle RAC 11.2.0.4.0+Data Guard打PSU补丁至11.2.0.4.201020

原创 cqiwen 2021-12-15
3464

Oracle RAC 11.2.0.4.0+Data Guard打补丁至11.2.0.4.201020

正文:

概述

此实验环境中,包含11.2.0.4 RAC + 11.2.0.4单机无ASM DataGuard + OGG环境
RAC采用标准安装,即数据文件、参数文件、控制文件、归档、redo、undo都保存在ASM中,grid和oracle数据库软件安装在每个节点的本地硬盘上。

打补丁全程RAC无需停止服务,只需要在打对应节点补丁时停对应节点的数据库。在打DG补丁时,需要停DG、停OGG

一、RAC上各节点打补丁

1)替换符合要求的OPatch,不能跨大版本,即11g不能使用12c的OPatch

oracle用户解压opatch和psu(此实验中zip文件放在/recover目录中)

$ unzip p6880880_112000_Linux-x86-64_11.2.0.3.23.zip
$ unzip p31718723_112040_Linux-x86-64.zip

查看补丁包目录下的README.html,其中有:
OPatch Utility Information
You must use the OPatch utility version 11.2.0.3.23 or later to apply this patch(表示至少需要11.2.0.3.23版本的OPatch,但不能跨大版本)

分别替换oracle和grid软件目录下的OPatch目录:
$ cd $ORACLE_HOME
[oracle@dgsdb01:/oracle/app/oracle/product/11.2.0/db_1]$ OPatch/opatch version
OPatch Version: 11.2.0.3.4

$ mv OPatch OPatch_11.2.0.3.4  --备份原文件
$ cp -rf /recover/OPatch .     --替换新的OPatch
$ /oracle/app/11.2.0/grid/OPatch/opatch lsinventory  --查看当前已经打过的补丁

$ su - root
[root@dgsdb01 ~]# cat /home/grid/.bash_profile |grep HOME
PATH=$PATH:$HOME/bin
export ORACLE_HOME=/oracle/app/11.2.0/grid;  --查到grid home目录的地址

[root@dgsdb01 ~]# cd /oracle/app/11.2.0/grid
[root@dgsdb01 grid]# mv OPatch OPatch_11.2.0.3.4
[root@dgsdb01 grid]# mv /recover/OPatch .
[root@dgsdb01 grid]# chown -R grid:oinstall ./OPatch
[root@dgsdb01 grid]# chown -R grid:oinstall /recover/31718723/   <<-- 此目录为补丁解压后的目录
2)环境检查

分别切换到grid和oracle用户执行以下命令来检查opatch是否支持对当前数据库打补丁:

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

检查PSU补丁是否有冲突:
注:必须要在psu解压后的目录中执行此命令

cd 31718723
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
$ORACLE_HOME/OPatch/opatch prereq CheckActiveFilesAndExecutables -ph ./

oracle用户停止dbconsole服务:

$ <ORACLE_HOME>/bin/emctl stop dbconsole
3)RAC需要使用root用户来打补丁
su - root
保险起见,先做预演:

/oracle/app/11.2.0/grid/OPatch/opatch auto /recover/31718723 -oh /oracle/app/11.2.0/grid,/oracle/app/oracle/product/11.2.0/db_1 -report

没报错,再打GI补丁:

/oracle/app/11.2.0/grid/OPatch/opatch auto /recover/31718723 -oh /oracle/app/11.2.0/grid

有时候打完补丁后,has服务没启动成功,则需要手动启动:

crsctl check crs
crsctl check has --如果has服务未启动,则将其启动,然后继续打oracle补丁
crsctl start has
继续打数据库补丁:

/oracle/app/oracle/product/11.2.0/db_1/OPatch/opatch auto /recover/31718723 -oh /oracle/app/oracle/product/11.2.0/db_1

打完主节点补丁,开始打其它节点补丁,要按顺序来,不能同时进行:
打第二个节点的数据库补丁时,可以启动第一个节点的数据库了。

srvctl start instance -d cqiwendb -n sdb01  --启第一个节点的数据库
srvctl stop instance -d cqiwendb -n dgsdb01  --停第二个节点的数据库
/oracle/app/11.2.0/grid/OPatch/opatch auto /recover/31718723 -oh /oracle/app/11.2.0/grid
/oracle/app/oracle/product/11.2.0/db_1/OPatch/opatch auto /recover/31718723 -oh /oracle/app/oracle/product/11.2.0/db_1

打完补丁后:

su - oracle
/oracle/app/oracle/product/11.2.0/db_1/OPatch/opatch lsinventory
su - root
srvctl start instance -d cqiwendb -n dgsdb01

二、由于此环境中还有DG环境,则应该在更新字典前先给DG环境打补丁:

此实验中DG为非ASM单机oracle环境,因此不能使用root用户打补丁,需要采用常规方法,使用oracle用户打补丁

1)环境准备
su - oracle
cd /soft
unzip p6880880_112000_Linux-x86-64_11.2.0.3.23.zip  --这个将得到OPatch
unzip p31537677_112040_Linux-x86-64.zip  --这个是只包含DB补丁的包

然后备份并替换原来的$ORACLE_HOME/OPatch
检查opatch是否能正常应用补丁:

cd 31537677
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

dg备库暂停归档应用:

sql > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

停库停监听:

sql > shutdown immediate

lsnrctl stop
检查是否还有其它残留进程:ps -ef|grep oracle
我这台服务器上同时还安装了ogg,因此把ogg的服务也要全部停掉。

2)安装补丁:
[oracle@rhel29 31537677]$ $ORACLE_HOME/OPatch/opatch apply  --注意,这个版本的opatch已经不需要再创建ocm文件了。
Oracle Interim Patch Installer version 11.2.0.3.23
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

Oracle Home       : /oracle/app/oracle/product/11.2.0/db_1
Central Inventory : /oracle/app/oraInventory
   from           : /oracle/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch version    : 11.2.0.3.23
OUI version       : 11.2.0.4.0
Log file location : /oracle/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-12-09_09-30-36AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   17478514  18031668  18522509  19121551  19769489  20299013  20760982  21352635  21948347  22502456  23054359  24006111  24732075  25869727  26609445  26392168  26925576  27338049  27734982  28204707  28729262  29141056  29497421  29913194  30298532  30670774  31103343  31537677  

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/oracle/app/oracle/product/11.2.0/db_1')

Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
...

完成时日志中会输出一条警告提示:

Stderr output:
chmod: changing permissions of `/oracle/app/oracle/product/11.2.0/db_1/bin/extjobO': Operation not permitted
make: [iextjob] Error 1 (ignored)

根据MOS上的介绍,此问题可安全忽略。

3)启动dg,启监听,开启同步进程
lsnrctl start
sqlplus / as sysdba
startup
alter database recover managed standby database disconnect from session;

SQL> select process,status,sequence# from v$managed_standby;

PROCESS   STATUS	SEQUENCE#
--------- ------------ ----------
ARCH	CLOSING	      608
ARCH	CLOSING	      609
ARCH	CONNECTED		  0
ARCH	CLOSING	      597
MRP0	APPLYING_LOG	598
RFS	  IDLE			0
RFS	  IDLE			0
RFS	  IDLE		  610
RFS	  IDLE			0
RFS	  IDLE			0
RFS	  IDLE		  598

三、RAC主节点上更新字典:

RAC只需要在一个节点上执行即可:

su - oracle
cd $ORACLE_HOME/rdbms/admin
sqlplus / AS SYSDBA
STARTUP
@catbundle.sql psu apply
@utlrp.sql
QUIT

更新rman catalog(如果有使用catalog):
If you are using the Oracle Recovery Manager, the catalog needs to be upgraded. Enter the following command to upgrade it:

$ rman catalog username/password@alias
RMAN> UPGRADE CATALOG;

完成后RAC和DG上查询打补丁记录:

/oracle/app/oracle/product/11.2.0/db_1/OPatch/opatch lsinventory
sql > select ACTION,VERSION,BUNDLE_SERIES,COMMENTS from dba_registry_history;

ACTION     VERSION     BUNDLE_SERIES    COMMENTS
---------- ----------- ---------------- ---------------------
APPLY      11.2.0.4    PSU              Patchset 11.2.0.2.0
APPLY      11.2.0.4    PSU              PSU 11.2.0.4.201020

四、检查数据库和dg同步是否正常。如果条件允许,最好是所有环境都重新启动一次。

写在最后:如有疑问,欢迎交流!

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

文章被以下合辑收录

评论