一、备份原来的opatch和数据库文件
这里要根据自己的路径:
mv /u01/app/oracle/product/19.3.0/db_1/OPatch /u01/app/oracle/product/19.3.0/db_1/OPatch.bakcd /u01/app
mkdir -p /u01/app/backup
tar -pcvf /u01/app/backup/oracle_backup.tar /u01/app/oracle/
二、替换高版本opatch
1.解压p6880880_190000_Linux-x86-64.zip
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
2.修改文件权限
chmod -R 755 /u01/app/oracle/product/19.3.0/db_1/OPatch chown oracle:oinstall /u01/app/oracle/product/19.3.0/db_1/OPatch
3.查看现在opatch版本
cd $ORACLE_HOME/OPatch
./opatch version
4.列出安装在$ORACLE_HOME
目录下的所有Oracle补丁的详细信息
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
三、关闭数据库实例和监听
1.关闭数据库实例
sqlplus / as sysdba
shutdown immediate
exit
2.关闭监听
lsnrctl stoplsnrctl status
四、 解压补丁
1.解压p33515361_190000_Linux-x86-64.zip
cd /soft
unzip p35943157_190000_Linux-x86-64.zip -d $ORACLE_HOME
2.查看解压后的文件
cd $ORACLE_HOME
cd 35943157
可以查看README文档和网页来了解详情
3.给文件授权
chmod -R 755 /u01/app/oracle/product/19.3.0/db_1/35943157
chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/db_1/35943157
4.冲突检测
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
5.补丁空间检查
cd /soft
vim OPatch_inspt
/soft/p35943157_190000_Linux-x86-64.zip
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /soft/OPatch_inspt
这就通过了
如果此时提示空间不足可以跟给跟目录扩容
可以参考这里Redhat 扩展/root目录下的磁盘容量_redhat扩展根目录空间-CSDN博客
6. 执行补丁升级
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch apply
7.将更新内容加载到数据库
lsnrctl start
sqlplus / as sysdba
startup
将更新的东西加载到数据库
cd $ORACLE_HOME/OPatch
./datapatch -verbose
8.查看更新是否成功
sqlplus / as sysdba
column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;
此时成功
五、卸载补丁更新
这里也要关闭数据库实例和监听
$ORACLE_HOME/OPatch/opatch rollback -id 35943157
sqlplus / as sysdba
column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;