说明:此次环境的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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)