说明: 此次环境的 patch p6880880_112000_Linux-x86-64.zip 和 p25476126_112040_Linux-x86-64.zip 均放在 / soft 目录,
且 grid 和 Oracle 用户对 / soft 目录具有读写权限, 全程只需要 root 用户执行即可.
数据库版本 | 11.2.0.4 |
PSU | 11.2.0.4.20170418 |
GI 安装目录 | /u01/app/11.2.0/grid |
DB 安装目录 | /u01/app/oracle/product/11.2.0/dbhome_1 |
注: 以下操作均是由 root 用户两节点分别执行
1. 替换 OPatch
- su - root
- export GRID_HOME=/u01/app/11.2.0/grid
- export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
- # 替换 grid 的 opatch
- cd $GRID_HOME;mv OPatch OPatch.`date +%Y%m%d`
- unzip /soft/p6880880_112000_Linux-x86-64.zip -d $GRID_HOME
- chown -R grid:oinstall $GRID_HOME/OPatch
- # 替换 database 的 opatch
- cd $ORACLE_HOME;mv OPatch OPatch.`date +%Y%m%d`
- unzip /soft/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
- chown -R oracle:oinstall $ORACLE_HOME/OPatch
2. 验证 opatch 替换情况:
- su - grid -c '$ORACLE_HOME/OPatch/opatch version'
- OPatch Version: 11.2.0.3.12
- OPatch succeeded.
- su - oracle -c '$ORACLE_HOME/OPatch/opatch version'
- OPatch Version: 11.2.0.3.12
- OPatch succeeded.
3. 解压补丁到 / soft 目录:
su - grid -c 'cd /soft ; unzip p25476126_112040_Linux-x86-64.zip'
4. 冲突检查
- su - grid -c '$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/25476126 -oh $ORACLE_HOME'
- su - oracle -c '$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /soft/25476126 -oh $ORACLE_HOME'
5. 生成 ocm.rsp 文件
su - grid -c 'cd /soft; $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner'
6. 开始自动打 PSU
root 用户执行:
- /u01/app/11.2.0/grid/OPatch/opatch auto /soft/25476126 -ocmrf /soft/ocm.rsp
- # -- 注: 如果 dbca 建库了, 上面脚本会同时把 grid 和 database 打上 PSU, 如果是新装 RAC 还未建库, 则只会安装 grid 的 psu,database 需要额外命令打上 psu.
-- 打 database psu 命令:
/u01/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch auto /soft/25476126 -oh /u01/app/oracle/product/11.2.0/dbhome_1 -ocmrf /soft/ocm.rsp
7. 验证安装 PSU 结果:
- su - grid -c '$ORACLE_HOME/OPatch/opatch lsinv'
- su - oracle -c '$ORACLE_HOME/OPatch/opatch lsinv'
- # -- 如果是新装 RAC, 还未建库, 则下面操作无需进行.
8. 运行脚本, 应用 psu
- su - oracle -c 'sqlplus / as sysdba'<<EOF
- @?/rdbms/admin/catbundle.sql psu apply
- EOF
9. 执行 utlrp 脚本
- su - oracle -c 'sqlplus / as sysdba'<<EOF
- @?/rdbms/admin/utlrp.sql
- EOF
10. 验证 psu 应用情况
- su - oracle -c 'sqlplus / as sysdba'<<EOF
- set line 150
- col ACTION_TIME for a30
- col ACTION for a8
- col NAMESPACE for a8
- col VERSION for a10
- col BUNDLE_SERIES for a5
- col COMMENTS for a20
- select * from dba_registry_history;
- EOF
来源: http://www.linuxidc.com/Linux/2018-03/151631.htm