系统:Red Hat Enterprise Linux Server release 7.4 (Maipo)
数据库:Oracle Release 12.1.0.1.0
oracle补丁:p6880880_122010_Linux-x86-64.zip
oracle补丁:p29252035_122010_Linux-x86-64.zip
补丁的过程大概如下
cat /etc/issue
uname -a
(也可以放到其他目录,需要chown一下)
两个zip文件,传到/tmp下面opatch_p6880880_122010_Linux-x86-64.zip,p29252035_122010_Linux-x86-64.zip
打补丁的目录:/opt/oracle/product/12.2.0/dbhome/OPatch
先shutdown immediate; lsnrctl stop,并用ps -ef | grep oracle检查进程,如果有sqlplus,也要杀掉
24676 1 0 April pts/0 00:00:00 /usr/local/bin/rlwrap sqlplus / as sysdba
24677 24676 0 April pts/1 00:00:00 sqlplus / as sysdba
直接杀父进程即可,kill -9 24676
进入/tmp,解压这2个文件,以下命令均在oracle用户下执行:
unzip p6880880_122010_Linux-x86-64.zip
unzip p29252035_122010_Linux-x86-64.zip
cd /opt/oracle/product/12.2.0/dbhome,即cd $ORACLE_HOME
mv OPatch/ OPatch_bk
cp -R /tmp/OPatch/ ./
cd OPatch
./opatch prereq CheckConflictAgainstOHWithDetail -ph /tmp/29252035/
提示:OPatch succeeded.
ps -ef | grep oracle
./opatch apply /tmp/28822515/
如果没有关闭,或停止监听,或者关闭sqlplus,会出现:OPatch failed with error code 73
如果正常,会提示OPatch succeeded.
./opatch lsinventory
开库,跑一下:
sqlplus / as sysdba