1.说明
初始版本:19.14.0.0.0
升级后版本为19.20.0.0.0
操作系统:Linux-x86-64
补丁包:
p35319490_190000_Linux-x86-64.zip
注意:因为是单实例,只打database [35320081] 和 OCW [35320149]
p35354406_190000_Linux-x86-64.zip OJVM补丁包
查看当前补丁号,没有OJVM可不打($ORACLE_HOME/OPatch/opatch lspatches)
p6880880_190000_Linux-x86-64.zip
有mos账号者,可按照下图方式搜索补丁号下载补丁包
2.升级补丁包
(若无特殊说明,以下步骤在Oracle用户执行)
1.备份目录
tar -cvf /home/oracle/oracle_home.tar $ORACLE_HOME
2.上传补丁包到Oracle用户并解压
oracle@orcl1:/home/oracle>ls(目录根据实际情况替换)
p35319490_190000_Linux-x86-64.zip
p35354406_190000_Linux-x86-64.zip
p6880880_190000_Linux-x86-64.zip
oracle@orcl1:/home/oracle> unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
选择A
oracle@orcl1:/home/oracle>unzip p35319490_190000_Linux-x86-64.zip
oracle@orcl1:/home/oracle>unzip p35354406_190000_Linux-x86-64.zip
3.预检查
oracle@orcl1:/home/oracle/35319490/35320081>opatch prereq CheckConflictAgainstOHWithDetail -ph ./
oracle@orcl1:/home/oracle/35319490/35320149>opatch prereq CheckConflictAgainstOHWithDetail -ph ./
oracle@orcl1:/home/oracle/35354406>opatch prereq CheckConflictAgainstOHWithDetail -ph ./
最后显示OPatch succeeded
4.关闭数据库 (多实例数据库需要将所有实例一同关闭)
oracle@orcl1:/home/oracle> sqlplus / as sysdba
SQL>shut immediate
Database closed.
Database dismounted.
ORACLE INSTANCE SHUT DOWN.
SQL>exit
5.打数据库补丁
oracle@orcl1:/home/oracle> cd 35319490/35320081
oracle@orcl1:/home/oracle/35319490/35320081>opatch apply
......
Verifying environment and performing pererquisite checks...
OPatch continues with these pathes :35320081
是否继续[y|n]
y
User Responded with:Y
ALL checks passed.
请关闭本地系统上在此ORACLE_HOME之外运行的Oracle实例。
(Oracle 主目录=’/$ORACLE_HOME’)
本地系统是否以准备打补丁?[y|n]
y
User Responded with:Y
6.打OCW补丁
oracle@orcl1:/home/oracle> cd 35319490/35320149
oracle@orcl1:/home/oracle/35319490/35320149>opatch apply
......
Verifying environment and performing pererquisite checks...
OPatch continues with these pathes :35320149
是否继续[y|n]
y
User Responded with:Y
ALL checks passed.
请关闭本地系统上在此ORACLE_HOME之外运行的Oracle实例。
(Oracle 主目录=’/$ORACLE_HOME’)
本地系统是否以准备打补丁?[y|n]
y
User Responded with:Y
7.打OJVM补丁
oracle@orcl1:/home/oracle> cd 35354406
oracle@orcl1:/home/oracle/35354406>opatch apply
......
Verifying environment and performing pererquisite checks...
OPatch continues with these pathes :35354406
是否继续[y|n]
y
User Responded with:Y
ALL checks passed.
请关闭本地系统上在此ORACLE_HOME之外运行的Oracle实例。
(Oracle 主目录=’/$ORACLE_HOME’)
本地系统是否以准备打补丁?[y|n]
y
User Responded with:Y
8.检查补丁信息
oracle@orcl1:/home/oracle/35354406> opatch lspatches
35320149:OCW RELEASE UPDATE 19.20.0.0.0(35320149)
35320081:Database Release Update :19.20.0.0.230718(35320081)
35354406:OJVM RELEASE UPDATE 19.20.0.0.0(35354406)
OPatch succeeded.
9.启动数据库
oracle@orcl1:/home/oracle> sqlplus / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
SQL> exit
10.注册补丁信息
oracle@orcl1:/home/oracle> cd $ORACLE_HOME/OPatch
oracle@orcl1:/u01/app/oracle/product/19.0.0/db/OPatch> ./datapatch -verbose
11.检查补丁注册信息
oracle@orcl1:/home/oracle> sqlplus / as sysdba
SQL> select PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION from dba_registry_sqlpatch;
12.启动监听
lsnrctl status
lsnrctl start
3.回退
1.关闭数据库
oracle@orcl1:/home/oracle> sqlplus / as sysdba
SQL>shut immediate
Database closed.
Database dismounted.
ORACLE INSTANCE SHUT DOWN.
SQL>exit
2.回退
opatch rollback -id 35320081
opatch rollback -id 35320149
opatch rollback -id 35354406
3.重新注册补丁信息
cp /home/oracle/oracle_home/OPatch -d $ORACLE_HOME
cd $ORACLE_HOME/OPatch
sqlplus / as sysdba
SQL>startup
./datapath -verbose