适用于:
Oracle Server - Enterprise Edition - Version: 10.2.0.3 to 11.1.0.7
Microsoft Windows Server 2003 (64-bit Itanium)
Microsoft Windows Server 2003 (64-bit AMD64 and Intel EM64T)
目标:
提供步骤介绍关于以滚动的方式应用ORACLE Windows 迷你补丁包到一个RAC环境中。这份介绍是补充每个补丁包中的README文件中提供的补丁应用说明。它们是为了扩大补丁自述文件关于Windows 迷你补丁包在RAC环境中的滚动应用的章节。
Windows 上的ORACLE数据库迷你补丁包可以应用滚动方式在RAC环境中,从以下的迷你补丁包版本:
- For 10.2.0.3:
10.2.0.3.22 - patch#6991039(32-bit), patch#6991040(64-bit Itanium), patch#6991041(x86-64)
(Note:10.2.0.3.21 - patch#6932785(32-bit), patch#6932786(64-bit Itanium), patch#6932788(x86-64)) must be applied first
- For 10.2.0.4:
10.2.0.4.1 - patch#6981215(32-bit), 10.2.0.4.5 patch#7218677(x86-64)
- For 11.1.0.6:
11.1.0.6.4 - patch#7044721(32-bit), none available (64-bit Itanium), 11.1.0.6.8 patch#7292516(x86-64)
解决方案
在oracle windows上以滚动的方式应用迷你补丁包的步骤。
注意:只需要的是在补丁被应用的的时候及时的从home停止ORACLE服务的运行。一旦补丁被应用在一个给定节点上给定的home,在那个节点上,即可以回到在线状态。
在ORACLE RAC环境中给 ORACLE HOMEs 打补丁的正确步骤:
A. CRS_HOME
B. ASM_HOME (this may or may not be a home separate from the RDBMS home)
C. RDBMS_HOME(s)
在完成每个opach 实用程序调用后,(以上的A、B和C)opatch 将依次通知你将为下一个节点的home上打上补丁,因此它将提示输入相关的用户信息。这时候,请确定要打补丁的节点上跑的服务已经都被中止了。
A、 修补CRS_HOME
1、 在修补CRS_HOME之前,停止下面列出的当前节点上CRS管理资源和ORACLE服务:
srvctl stop service -d -s service> -i
srvctl stop instance -d -i
srvctl stop asm -n
srvctl stop nodeapps -n
crsctl stop crs
*****
一个或者更多的下列服务需要实用windows”net stop”命令,例子包括:
net stop OracleService
net stop OracleTNSListenerLISTENER_
net stop OracleDBConsole
net stop OracleASMService
net stop OracleREMExecService
net stop OracleCSService
注意:停止OracleCSService将同时停止OracleEVMService和OracleCRService
net stop OracleClusterVolumeService
net stop "Oracle Object Service"
2、 在命令提示符窗口,设置ORACLE_HOME指向CRS_HOME位置的环境变量
Set ORACLE_HOME=e:\oracle\product\10.2.0\crs
3、将目录更改为您下载并解压缩补丁程序的目录
cd 7386321
4、确保包含OPatch脚本的目录在PATH设置中。输入下面的命令来运行OPatch:
opatch apply
5、根据你集群中的节点数量,opatch 将要么提示你去你希望修补剩下的哪一个节点要么就提示你一个剩下的节点名:
例子, 在双节点集群或者在修补多节点集群的最后一个节点之前你将看到提示:
节点“racnode2”已经被修补。你可以重启它上面的oracle 实例
节点“racnode3”将随后被修补
请关闭“racnode3”上运行此ORACLE_HOME的ORACLE 实例。
(Oracle Home = 'd:\oracle\product\10.2.0\crs')
Is the node ready for patching? [y|n]
来自3节点集群的例子:
本地系统已修补。您可以重新启动Oracle实例。
在滚动模式的修补。
其余要修补的节点:
'racnode2' 'racnode3'
谁将是下一个要修补的节点?
6、在这时,—暂停—并在你刚修补的节点上启动所有的集群件服务和CRS管理资源
如果你有ORACLE 进程管理器服务配置,只需简单启动该服务,它将使得所有必须的ORCLE 集群件服务回到在线状态:
net start "Oracle Process Manager Service"
ORACLE支持强烈推荐ORACLE 进程管理器。更多的配置和用法,参阅:
Note.358156.1 Automatic Startup of Cluster Services May Hang or Fail on Windows
如果你没有配置ORACLE进程管理器服务,那么执行如下命令:
crsctl start crs
net start Oracle Object Service
net start OracleClusterVolumeService (
7、一旦你重启了所有的集群件服务和CRS资源管理在修复的节点上,返回到命令提示符(你运行optch的地方)键入下一个需要修复的节点名或者回复“y”如果它自动提示节点名。
8、在下一个节点上重复步骤1到7.
9、在你的集群中重复为节点重复一样步骤7-8.
10、手动为orafencedrv.sys打补丁
该步骤将在集群中的每个节点执行一次:
a、停止ORACLE 服务 OraFenceService
net stop OraFenceService
b、 备份位于%s_systemDirectory%/drivers下的orafencedrv.sys文件。
c、 一个补丁号下的补丁提供的文件来替代它(在我们的例子中补丁号是7386321)
B、修补ASM_HOME
在修补ASM_HOME之前,CRS服务将可能会再所有节点上运行。
1、 在当前节点上停止以下列出的ASM_HOME相关CRS管理资源和ORACLE服务:
srvctl stop service -d -s -i
srvctl stop instance -d -i
srvctl stop asm -n
srvctl stop listener -n
net stop OracleService
net stop OracleTNSListenerLISTENER_
net stop OracleDBConsole
net stop OracleASMService
2、在命令提示符窗口设置环境变量ORACLE_HOME指向ASM_HOME的位置:
set ORACLE_HOME=e:\oracle\product\10.2.0\asm
3、目录更改为您下载并解压的补丁程序所在的目录:
cd 7386321
4、确保包含OPatch脚本的目录在PATH设置中。输入下面的命令来运行OPatch:
opatch apply
5、根据你集群中的节点数量,opatch 将要么提示你去你希望修补剩下的哪一个节点要么就提示你一个剩下的节点名:
例丑, 在双节点集群或者在修补多节点集群的最后一个节点之前你将看到提示:
节点“racnode2”已经被修补。你可以重启它上面的oracle 实例
节点“racnode3”将随后被修补
请关闭“racnode3”上运行此ORACLE_HOME的ORACLE 实例。
(Oracle Home = 'd:\oracle\product\10.2.0\crs')
Is the node ready for patching? [y|n]
来自3节点集群的例子:
本地系统已修补。您可以重新启动Oracle实例。
在滚动模式的修补。
其余要修补的节点:
'racnode2' 'racnode3'
谁将是下一个要修补的节点?
6、这时候—暂停—并在当前节点上启动以下列出的所有ASM_HOME(并从RDBMS_HOMES运行ASM_HOME依赖资源)和CRS管理资源:
srvctl start listener -n
srvctl start asm -n
srvctl start instance -d -i
srvctl start service -d -s service> -i
7、一旦你在修补的节点上重启所有的ASM_HOME CRS管理资源,返回到命令提示符(你运行optch的地方)键入下一个需要修复的节点名或者回复“y”如果它自动提示节点名。
8、在下一个节点上重复步骤1到7.
9、在你的集群中重复为节点重复一样步骤7-8.
C、修补RDBMS_HOME
注意:OARCLE_HOME包含ASM和RDBMS组件(结合),完成B和C中的所有步骤。
在修补RDBMS_HOME之前,ASM和CRS服务是可以运行的。(甚至是在你应用补丁的节点上)。
1、在当前的节点上停止下来RDBMS_HOME相关的CRS管理资源和ORACLE服务:
srvctl stop service -d -s -i
srvctl stop instance -d -i
net stop OracleService
net stop OracleDBConsole
2、在命令提示符窗口设置ORACLE_HOME环境变量指向RDBMS_HOME的位置。
set ORACLE_HOME=e:\oracle\product\10.2.0\rdbms
3、修改目录为你下载并解压补丁程序的目录:
cd 7386321
4、确保包含OPatch脚本的目录在PATH设置中。输入下面的命令来运行OPatch:
opatch apply
5、根据你集群中的节点数量,opatch 将要么提示你去你希望修补剩下的哪一个节点要么就提示你一个剩下的节点名:
例寅, 在双节点集群或者在修补多节点集群的最后一个节点之前你将看到提示:
节点“racnode2”已经被修补。你可以重启它上面的oracle 实例
节点“racnode3”将随后被修补
请关闭“racnode3”上运行此ORACLE_HOME的ORACLE 实例。
(Oracle Home = 'd:\oracle\product\10.2.0\crs')
Is the node ready for patching? [y|n]
来自3节点集群的例子:
本地系统已修补。您可以重新启动Oracle实例。
在滚动模式的修补。
其余要修补的节点:
'racnode2' 'racnode3'
谁将是下一个要修补的节点?
6、这时候—暂停—并在当前节点上启动以下列出的所有RDBMS_HOME相关CRS管理资源:
srvctl start instance -d -i
srvctl start service -d -s -i
7、一旦你在修补的节点上重启所有的RDBMS_HMOME CRS管理资源,返回到命令提示符(你运行optch的地方)键入下一个需要修复的节点名或者回复“y”如果它自动提示节点名。
8、在下一个节点上重复步骤1到7.
9、在你的集群中重复为节点重复一样步骤7-8.
10、一旦所有节点的RDBMS的二进制文件已经修复并且所有的实力已经恢复并且运行了新的二进制文,按照你应用的补丁的自述文件的特定说明,对每一个实例(每个数据库一次)执行catcpu.sql。
参考文献
NOTE:756671.1 - Oracle Recommended Patches -- Oracle Database
NOTE:358156.1 - Automatic Startup of Cluster Services May Hang or Fail on Windows
显示相关信息
产品
* Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
关键词
WINDOWS