1 [文档概要](#1)2 [禁用/启用HAIP](#2)- [2.1 禁用/启用HAIP资源](#2.1)- [2.2 修改ASM资源的依赖关系](#2.2)3 [修改cluster_interconnects参数](#3)- [3.1 使用grid用户修改ASM实例的cluster_interconnects参数](#3.1)- [3.2 使用oracle用户修改DB实例的cluster_interconnects参数](#3.2)- [3.3 重启所有实例或集群](#3.3)- [3.4 检查cluster_interconnects参数](#3.4)
1 文档概要
环境:RHEL 6.4 + GI 11.2.0.4 + Oracle 11.2.0.4对有关HAIP相关问题的总结,包括禁用/启用HAIP,修改ASM资源的依赖关系,修改cluster_interconnects参数等。
2 禁用/启用HAIP
2.1 禁用/启用HAIP资源
禁用HAIP资源:root用户执行@all nodes“`# /opt/app/11.2.0/grid/bin/crsctl modify res ora.cluster_interconnect.haip -attr \”ENABLED=0\” -init“`启用HAIP资源:如果之后想重新使用HAIP资源,可以启用:“`# /opt/app/11.2.0/grid/bin/crsctl modify res ora.cluster_interconnect.haip -attr \”ENABLED=1\” -init“`在实际处理的案例中,发现其中一个节点始终无法启动HAIP,在另外节点可以启用HAIP,但这样是无法启动集群的,所以在可以启动HAIP的节点直接禁用HAIP,这样所有节点都使用真实的私网地址就可以正常启动成功。但需要注意在有些场景下,单纯禁用HAIP会导致ASM无法启动,这是由于ASM资源的相关依赖关系导致。
2.2 修改ASM资源的依赖关系
在一些实际案例场景,我们直接禁用HAIP资源,再重启has时可能会无法启动ASM资源,因为ASM资源对HAIP有依赖关系。这一点我在自己的测试环境也可以验证。查看当前ASM资源的关联关系:“`[root@jyrac2 ~]# crsctl stat res ora.asm -p -initNAME=ora.asmTYPE=ora.asm.typeACL=owner:grid:rw-,pgrp:oinstall:rw-,other::r–,user:grid:rwxACTION_FAILURE_TEMPLATE=ACTION_SCRIPT=ACTIVE_PLACEMENT=0AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX%AUTO_START=restoreCARDINALITY=1CHECK_ARGS=CHECK_COMMAND=CHECK_INTERVAL=1CHECK_TIMEOUT=30CLEAN_ARGS=CLEAN_COMMAND=DAEMON_LOGGING_LEVELS=DAEMON_TRACING_LEVELS=DEFAULT_TEMPLATE=DEGREE=1DESCRIPTION=\”ASM instance\”DETACHED=trueENABLED=1FAILOVER_DELAY=0FAILURE_INTERVAL=3FAILURE_THRESHOLD=5GEN_USR_ORA_INST_NAME=+ASM2HOSTING_MEMBERS=LOAD=1LOGGING_LEVEL=1NOT_RESTARTING_TEMPLATE=OFFLINE_CHECK_INTERVAL=0ORA_VERSION=11.2.0.4.0PID_FILE=PLACEMENT=balancedPROCESS_TO_MONITOR=PROFILE_CHANGE_TEMPLATE=RESTART_ATTEMPTS=5SCRIPT_TIMEOUT=600SERVER_POOLS=SPFILE=START_ARGS=START_COMMAND=START_DEPENDENCIES=hard(ora.cssd,ora.cluster_interconnect.haip,ora.ctssd)pullup(ora.cssd,ora.cluster_interconnect.haip,ora.ctssd)weak(ora.drivers.acfs)START_TIMEOUT=600STATE_CHANGE_TEMPLATE=STOP_ARGS=STOP_COMMAND=STOP_DEPENDENCIES=hard(intermediate:ora.cssd,shutdown:ora.cluster_interconnect.haip)STOP_TIMEOUT=600UNRESPONSIVE_TIMEOUT=180UPTIME_THRESHOLD=1hUSR_ORA_ENV=USR_ORA_INST_NAME=USR_ORA_OPEN_MODE=mountUSR_ORA_OPI=falseUSR_ORA_STOP_MODE=immediateVERSION=11.2.0.3.0“`可以看到ASM资源和HAIP资源的依赖关系。修改ASM的关联关系@all nodes:“`crsctl modify resource ora.asm -attr \”START_DEPENDENCIES=\’hard(ora.cssd,ora.ctssd)pullup(ora.cssd,ora.ctssd)weak(ora.drivers.acfs)\’\” -f -initcrsctl modify resource ora.asm -attr \”STOP_DEPENDENCIES=hard(intermediate:ora.cssd)\” -f –init“`改回ASM的关联关系:“`crsctl modify resource ora.asm -attr \”START_DEPENDENCIES=\’hard(ora.cssd, ora.cluster_interconnect.haip, ora.ctssd)pullup(ora.cssd, ora.cluster_interconnect.haip, ora.ctssd)weak(ora.drivers.acfs)\’\” -f -initcrsctl modify resource ora.asm -attr \”STOP_DEPENDENCIES=hard(intermediate:ora.cssd)\” -f –init“`
3 修改cluster_interconnects参数
3.1 使用grid用户修改ASM实例的cluster_interconnects参数
修改为具体的私网地址,示例如下:“`SQL> alter system set cluster_interconnects=\’10.10.10.50\’ scope=spfile sid=\’+ASM1\’;SQL> alter system set cluster_interconnects=\’10.10.10.52\’ scope=spfile sid=\’+ASM2\’;“`改回默认值为空,示例如下:“`SQL> alter system set cluster_interconnects=\’\’ scope=spfile sid=\’+ASM1\’;SQL> alter system set cluster_interconnects=\’\’ scope=spfile sid=\’+ASM2\’;“`
3.2 使用oracle用户修改DB实例的cluster_interconnects参数
修改为具体的私网地址,示例如下:“`SQL> alter system set cluster_interconnects=\’10.10.10.50\’ scope=spfile sid=\’jyzhao1\’;SQL> alter system set cluster_interconnects=\’10.10.10.52\’ scope=spfile sid=\’jyzhao2\’;“`改回默认值为空,示例如下:“`SQL> alter system set cluster_interconnects=\’\’ scope=spfile sid=\’jyzhao1\’;SQL> alter system set cluster_interconnects=\’\’ scope=spfile sid=\’jyzhao2\’;“`在实际的一个案例中,客户是11g版本的GI环境,实际有2块私网网卡,使用了HAIP特性,同时安装有11g RAC和10g RAC,11g RAC使用HAIP正常,10g RAC由于无法使用HAIP,所以获取到的是真实的私网地址,但是数据库无法在所有节点同时open,这种情况,直接把10g RAC实例的cluster_interconnects参数修改成其中一个网卡的真实私网地址,即可正常在所有节点open。这类场景是最适合修改参数解决,不影响其他正常使用HAIP的11g环境。
3.3 重启所有实例或集群
修改参数之后需要重新启动实例生效,这里建议直接重启集群一起验证修改后的效果:“`# /opt/app/11.2.0/grid/bin/crsctl stop has# /opt/app/11.2.0/grid/bin/crsctl start has“`
3.4 检查cluster_interconnects参数
“`SQL> show parameter cluster_interconnects“`