准备工作
- 备份 $ORACLE_HOME
# 清理audit日志文件
find $ORACLE_HOME/rdbms/audit -name "*.aud" -ctime +1 -exec rm -f {} \;
# 备份 $ORACLE_HOME
cd $ORACLE_HOME
tar -zcvf /home/oracle/oracle_home_bak_20220115.tar.gz *
- 准备补丁和opatch,一次性安装以下补丁
# 上传补丁包
oracle> ll
-rw-r--r-- 1 oracle oinstall 12779 p31667096_199000DBRU_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall 865382 p32259535_199000DBRU_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall 832001 p32353343_199000DBRU_Linux-x86-64.zip
# 解压补丁包
oracle> unzip p31667096_199000DBRU_Linux-x86-64.zip
oracle> unzip p32259535_199000DBRU_Linux-x86-64.zip
oracle> unzip p32353343_199000DBRU_Linux-x86-64.zip
oracle> ll
total 1704
drwxr-xr-x 4 oracle oinstall 4096 31667096
drwxr-xr-x 5 oracle oinstall 4096 32259535
drwxr-xr-x 4 oracle oinstall 4096 32353343
-rw-r--r-- 1 oracle oinstall 12779 p31667096_199000DBRU_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall 865382 p32259535_199000DBRU_Linux-x86-64.zip
-rw-r--r-- 1 oracle oinstall 832001 p32353343_199000DBRU_Linux-x86-64.zip
-rw-rw-r-- 1 oracle oinstall 4455 PatchSearch.xml
# 编辑补丁目录列表文件
oracle> cat /home/oracle/patch/patch_20220104.txt
/home/oracle/patch/31667096
/home/oracle/patch/32259535
/home/oracle/patch/32353343
# 根据补丁里README.txt的要求升级OPatch
oracle> export PATH=$ORACLE_HOME/OPatch:$PATH
oracle> opatch version
OPatch Version: 12.2.0.1.23
- 补丁冲突检查
oracle> opatch prereq CheckConflictAgainstOHWithDetail -phBaseFile /home/oracle/patch/patch_20220104.txt
存在 Dataguard 容灾环境
- 如果存在 Dataguard 容灾环境,需要先在DG容灾端安装补丁,最后在生产端安装补丁
- DG容灾端安装补丁,对于容灾端也是RAC的情况下,如果DG配的好,可以做到短暂停止同步
- 检查DG同步正常
SQL> select t.*,arched-applied gap,sysdate etime from (select thread#,max(sequence#) arched, max(decode(applied,'YES',sequence#,1)) applied, max(decode(DELETED,'YES',sequence#,1)) DELETED from v$archived_log where resetlogs_change# in(select resetlogs_change# from v$database) group by thread#) t;
THREAD# ARCHED APPLIED DELETED GAP ETIME
---------- ---------- ---------- ---------- ---------- ------------
1 24466 24466 24402 0 15-JAN-22
2 27184 27184 27112 0 15-JAN-22
SQL> set line 300 pages 100
col NAME for a30
col VALUE for a20
col UNIT for a30
select name,value,unit,time_computed from v$dataguard_stats;
NAME VALUE UNIT TIME_COMPUTED
------------------------------ -------------------- ------------------------------ ------------------------------------------------------------
transport lag +00 00:00:00 day(2) to second(0) interval 01/15/2022 11:26:19
apply lag +00 00:00:00 day(2) to second(0) interval 01/15/2022 11:26:19
apply finish time +00 00:00:00.000 day(2) to second(3) interval 01/15/2022 11:26:19
estimated startup time 33 second 01/15/2022 11:26:19
SQL> SELECT PROCESS, STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS,DELAY_MINS FROM V$MANAGED_STANDBY;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS DELAY_MINS
------------------ ------------------------ ---------- ---------- ---------- ---------- ----------
ARCH CLOSING 1 24507 8042496 776 0
DGRD ALLOCATED 0 0 0 0 0
DGRD ALLOCATED 0 0 0 0 0
ARCH CLOSING 2 27219 8046592 1036 0
ARCH CLOSING 2 27220 8077312 1933 0
ARCH CLOSING 1 24504 8065024 1352 0
RFS RECEIVING 1 24508 1734485 8 0
RFS IDLE 0 0 0 0 0
RFS IDLE 1 0 0 0 0
RFS IDLE 0 0 0 0 0
RFS RECEIVING 2 27221 5365754 1 0
RFS IDLE 0 0 0 0 0
MRP0 APPLYING_LOG 1 24508 1734465 9172992 0
RFS IDLE 2 0 0 0 0
- 如果MRP0在预安装补丁的节点上,需要先停止MRP0,在另一个节点启动MRP0进行数据同步
-- 预安装补丁的节点停止MRP0
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
-- 另一个节点启动,确保数据同步正常
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT USING CURRENT LOGFILE;
安装补丁
-
RAC 节点依次执行以下步骤进行补丁的安装
-
预安装补丁的节点关闭监听和实例
具体参考文章:https://www.modb.pro/db/237402 -
安装补丁
su - oracle
opatch napply -phBaseFile /home/oracle/patch/patch_20220104.txt -local -silent
- 检查
opatch lspatches|egrep '31667096|32259535|32353343'
- 启动实例
SQL> startup
具体参考文章:https://www.modb.pro/db/237402
补丁回滚
su - oracle opatch nrollback -id 31667096,32259535,32353343
最后修改时间:2022-01-15 15:59:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




