Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。
Oracle PSU的全称是Patch Set Update,Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复而且还包含了最新的CPU。PSU通常随CPU一起发布。
一、安装最新OPatch
当前Oracle版本为
根据公司DBA给的三个补丁包:OPatch、数据库补丁、OJVM Patch
虽然一脸懵逼,对数据库了解很少,但是还是含着泪装下去。。
先把OPatch升级,当前可见上图,为12.1.0.1.3,包中为12.0.1.10
首先应该关闭数据库服务,关闭监听
# 关闭数据库,使用SQLplus登录
sqlplus /nolog
connect sys/oracle as sysdba
shutdown normal
# 使用username/password@service登录进行关闭会提示没有权限
# 关闭监听,退出SQLplus回到Oracle容器中
cd $ORACLE_HOME/bin
lsnrctl stop
lsnrctl status
在ORACLE_HOME下使用OPatch/opatch version查看OPatch版本,与第一个图中版本吻合
进入ORACLE_HOME将OPatch备份
# 新建OPatch_bak文件并将OPatch移到OPatch_bak中
mv OPatch OPatch_bak
保证OPatch已不存在,将补丁复制到ORACLE_HOME下
在Docker路径下使用xftp比较难找,因为其下文件较多(因为有几次安装失败的经历)
参考我的路径
/var/lib/docker/overlay2/ce41d80b81d5160e26c3e5017c4cf95ad429603e9023d27fc593b497de9134d5/merged/u01/app/oracle-product/12.1.0/xe
建议使用命令在使用的Oracle容器中新建一个文件,方便分辨
#查看
$ORACLE_HOME/OPatch/opatch version
#出现bash: ./opatch: Permission denied,进入ORACLE_HOME/OPatch对opatch文件修改权限
cd $ORACLE_HOME/OPatch
chmod +x opatch
#直接在该$ORACLE_HOME/OPatch路径下查看
./opatch version
到此OPatch的补丁安装完毕,后面俩补丁继续踩坑