Oracle 11g RAC之HAIP相关问题总结
2020-06-07 16:32
746 查看
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 -init NAME=ora.asm TYPE=ora.asm.type ACL=owner:grid:rw-,pgrp:oinstall:rw-,other::r--,user:grid:rwx ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= ACTIVE_PLACEMENT=0 AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX% AUTO_START=restore CARDINALITY=1 CHECK_ARGS= CHECK_COMMAND= CHECK_INTERVAL=1 CHECK_TIMEOUT=30 CLEAN_ARGS= CLEAN_COMMAND= DAEMON_LOGGING_LEVELS= DAEMON_TRACING_LEVELS= DEFAULT_TEMPLATE= DEGREE=1 DESCRIPTION="ASM instance" DETACHED=true ENABLED=1 FAILOVER_DELAY=0 FAILURE_INTERVAL=3 FAILURE_THRESHOLD=5 GEN_USR_ORA_INST_NAME=+ASM2 HOSTING_MEMBERS= LOAD=1 LOGGING_LEVEL=1 NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 ORA_VERSION=11.2.0.4.0 PID_FILE= PLACEMENT=balanced PROCESS_TO_MONITOR= PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=5 SCRIPT_TIMEOUT=600 SERVER_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=600 STATE_CHANGE_TEMPLATE= STOP_ARGS= STOP_COMMAND= STOP_DEPENDENCIES=hard(intermediate:ora.cssd,shutdown:ora.cluster_interconnect.haip) STOP_TIMEOUT=600 UNRESPONSIVE_TIMEOUT=180 UPTIME_THRESHOLD=1h USR_ORA_ENV= USR_ORA_INST_NAME= USR_ORA_OPEN_MODE=mount USR_ORA_OPI=false USR_ORA_STOP_MODE=immediate VERSION=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 -init crsctl 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 -init crsctl 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 ```相关文章推荐
- ORACLE 11g RAC部署GRID过程中遇到的问题总结
- Oracle 11G RAC 本地时间和通过listener连接时间不相同的问题
- oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
- Windows 7下安装Oracle 11g相关问题解决方法
- 这几天安装oracle 11g RAC ,但是遇到问题了,一直没有安装好
- Oracle技术之和外键相关的阻塞和死锁问题总结(四)
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
- oracle 11g RAC数据库监听配置相关
- Linux5.5Vmware安装ORACLE 11G RAC时SSH对等性建立的问题
- ubuntu 12.04 (64位)下安装oracle 11g过程及问题总结
- 解决oracle客户端可以连接11g rac vip,但是不能连接scan ip问题
- Windows 7下安装Oracle 11g相关问题解决方法
- oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
- centos6.2 静默安装oracle 11g 建库及相关问题解决
- oracle 11gr2 rac搭建过程中若干问题的总结
- Oracle 11g RAC 本地时间和通过listener连接时间不相同的问题
- 解决Windows 7下安装Oracle 11g相关问题的方法
- Oracle 11g R2 RAC 前置条件相关脚本
- Oracle RAC相关服务无法启动问题
- ORACLE 11G R2 RAC安装总结