从support 1454618.1文档 中可以下载到各版本的补丁和PSU。
此次采用的是28349311 版本号的psu 和28440711 版本号的jvm。opatch版本号6880880_122010
操作步骤如下:
可以不停机操作,但是最好是单个节点打的时候,先停掉一个节点做备份。一个节点一个节点的打。
停掉单个节点后。使用root 的用户备份相关文件信息,
tar -cvf oralcle.tar /u01
1.更新opatch
更新GRID_HOME中的OPatch
[grid@gcepdb01 ~]$ cd $ORACLE_HOME
[grid@gcepdb01 grid]$ OPatch/opatch version
opatch version
OPatch Version: 12.2.0.1.3
OPatch succeeded. [grid@gcepdb01 grid]$
[grid@gcepdb01 grid]$ ls -ld OPatch/
drwxr-xr-x 10 grid oinstall 4096 Mar 21 15:22 OPatch/
[grid@gcepdb01 grid]$
[grid@gcepdb01 grid]$ unzip /u01/software/psu_patch/p6880880_122010__Linux-x86-64.zip
... snip ...
replace OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
... snip ...
[grid@gcepdb01 grid]$ OPatch/opatch version
OPatch Version: 12.2.0.1.13
OPatch succeeded.
[grid@gcepdb01 grid]$
修改PATH环境变量,将OPatch路径加入:
[root@gcepdb01 patch]# vi /home/grid/.bash_profile
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
[root@gcepdb01 u01]# su - grid
[grid@gcepdb01 ~]$ which opatch
/grid/app/12.1.0/grid/OPatch
[grid@gcepdb01 ~]$
2.42更新ORACLE_HOME中的OPatch:
[oracle@gcepdb01 ~]$ cd $ORACLE_HOME
[oracle@gcepdb01 dbhome_1]$ OPatch/opatch version
OPatch Version: 12.2.0.1.3
OPatch succeeded.
[oracle@gcepdb01 dbhome_1]$ ls -ld OPatch/
drwxr-xr-x 8 oracle oinstall 4096 Jul 30 14:50 OPatch/
[oracle@gcepdb01 dbhome_1]$ unzip /u01/software/psu_patch/p6880880_122010__Linux-x86-64.zip
... snip ...
replace OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
... snip ...
[oracle@gcepdb01 dbhome_1]$ OPatch/opatch version
OPatch Version: 12.2.0.1.13
OPatch succeeded.
[oracle@gcepdb01 dbhome_1]$
修改PATH环境变量,将OPatch路径加入:
[root@ gcepdb01 patch]# vi /home/oracle/.bash_profile
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
2. PSU补丁安装
grid 用户 解压到当前目录
unzip p28349311_121020_Linux-x86-64.zip
Add the directory containing the opatchauto to the $PATH environment variable. For example:
# export PATH=$PATH:<GI_HOME>/OPatch
To patch the GI home and all Oracle RAC database homes of the same version:
# opatchauto apply <UNZIPPED_PATCH_LOCATION>/28349311
To patch only the GI home:
# opatchauto apply <UNZIPPED_PATCH_LOCATION>/28349311 -oh <GI_HOME>
To patch one or more Oracle RAC database homes:
# opatchauto apply <UNZIPPED_PATCH_LOCATION>/28349311 -oh <oracle_home1_path>,<oracle_home2_path>
这里使用 opatchauto apply <UNZIPPED_PATCH_LOCATION>/28349311 这种方式
2.1 检测当前环境是否满足
/grid/app/12.1.0/grid/OPatch/opatchauto apply /software/28349311 -analyze
检测没有报错执行
2.2 打oralce和grid 的psu
/grid/app/12.1.0/grid/OPatch/opatchauto apply /software/28349311
2.3 检查GI补丁
[gcepdb01@grid:/home/grid]$opatch lspatches
28259950;ACFS PATCH SET UPDATE 12.1.0.2.181016 (28259950)
28259914;OCW PATCH SET UPDATE 12.1.0.2.181016 (28259914)
28259833;Database Patch Set Update : 12.1.0.2.181016 (28259833)
26983807;WLM Patch Set Update: 12.1.0.2.180116 (26983807)
OPatch succeeded
2.4 检测当前环境是否能安装JVM
-
(
PATCH_TOP_DIR
) you have created above. To do so, run the following command:$ unzip -d <PATCH_TOP_DIR> p28440711_12102_<PLATFORM_NAME>.zip
-
(Only for Installation) Determine whether any currently installed interim patches conflict with this patch 28440711 as shown as follows:
$ cd <PATCH_TOP_DIR>/28440711 $ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
2.5 检测通过后安装oracleJVM补丁
/oracle/app/oracle/product/12.1.0/dbhome_1/OPatch/opatch apply /software/28440711
2.6 检查oralce补丁
[gcepdb01@oracle:/home/oracle]$opatch lspatches
28440711;Database PSU 12.1.0.2.181016, Oracle JavaVM Component (OCT2018)
28259833;Database Patch Set Update : 12.1.0.2.181016 (28259833)
28259914;OCW PATCH SET UPDATE 12.1.0.2.181016 (28259914)
OPatch succeeded.
2.7 检测数据库是否正常
crsctl stat res -t
数据库正常,到此,此次补丁操作已正常完成。