一、获取补丁包
查看之前的版本
column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;

二、备份opatch和数据库文件
su - oracle
mv /u01/app/oracle/product/19.3.0/db_1/OPatch /u01/app/oracle/product/19.3.0/db_1/OPatch.bak
cd /u01/app
mkdir -p /u01/app/backup
tar -pcvf /u01/app/backup/oracle_backup.tar /u01/app/oracle/

三、替换高版本opatch
su - oracle
cd /soft
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
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
cd $ORACLE_HOME/OPatch
./opatch version

验证Oracle Inventory
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

打补丁前先关闭监听和数据库
关闭数据库
sqlplus / as sysdba
shutdown immediate
exit
关闭监听
lsnrctl start
lsnrctl stop
四、解压补丁
cd /soft
unzip p35943157_190000_Linux-x86-64.zip -d $ORACLE_HOME
cd $ORACLE_HOME
cd 35943157
查看README.html进行冲突检测


授予补丁包权限
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/

五、冲突检测
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

检测正常
六、补丁空间检查
vim jc
#添加补丁的zip包路径
/soft/p35943157_190000_Linux-x86-64.zipp
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /u01/app/oracle/product/19.3.0/jc

$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /soft/patch_list_dbhome.txt

七、执行补丁升级
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch apply
接下来一直y就好


八、将更新内容加载到数据库
#启动监听
lsnrctl start
#启动数据库
sqlplus / as sysdba
startup
exit
#将更新的东西加载到数据库
cd $ORACLE_HOME/OPatch
./datapatch -verbose

九、编译无效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
SQL> @utlrp.sql
最后查看数据库版本
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;

可以看到已经升级到19.22.0.0
十、补丁回退
#关闭数据库
sqlplus / as sysdba
shutdown immediate
exit
#关闭监听
lsnrctl stop
$ORACLE_HOME/OPatch/opatch rollback -id 35943157


再次查看数据库版本
#开启监听
lsnrctl start
开启数据库
sqlplus / as sysdba
startup
column product format A30
column version format A15
column version_full format A20
column status format A15
select * from product_component_version;

本文详细介绍了如何在Oracle19c单机环境下,从19.3.0版本升级到19.22.0.0的补丁过程,包括获取补丁、备份、替换OPatch、冲突检测、系统空间检查、执行补丁及数据库更新等关键步骤。
2280





