一:补丁包
1:此次补丁升级是单实例补丁升级,所以只需要一个opatch,不需要GI
所需补丁如下(第二个包是GI的,这里用不上)
链接:https://pan.baidu.com/s/1L6woJyWUmfb8CNQySGzuQA
提取码:zosq
将以上文件上传到opt目录下。
二:备份opatch和数据库文件
1:查看oracle现有补丁版本
SQL> column product format A30
SQL> column version format A15
SQL> column version_full format A20
SQL> column status format A15
SQL> select * from product_component_version;
2:备份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
su - oracle
cd /u01/app
mkdir -p /u01/app/backup
tar -pcvf /u01/app/backup/oracle_backup.tar /u01/app/oracle/
3:替换高版本opatch
cd /opt
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
4:打补丁(需要关闭数据库和监听)
cd /opt
unzip p35943157_190000_Linux-x86-64.zip -d $ORACLE_HOME
cd $ORACLE_HOME
cd 35943157
然后找到里面readme.html文件并到官网了解详细信息。
5:给补丁赋予权限
chmod -R 755 /u01/app/oracle/product/19.3.0/35943157
chown -R oracle:oinstall /u01/app/oracle/product/19.3.0/35943157
6:冲突检测
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
7:给补丁升级
cd $ORACLE_HOME/35943157
$ORACLE_HOME/OPatch/opatch apply
然后根据提示一直输y就行
8:将更新的加载到数据库
# 启动监听
lsnrctl start
# 启动数据库
sqlplus / as sysdba
startup
cd $ORACLE_HOME/OPatch
./datapatch -verbose
最后查看当前数据库版本
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
最后再次查看数据库版本
可以看到已经恢复。