Oracle 11g RAC之HAIP相關問題總結
阿新 • • 發佈:2020-06-07
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)
在一些實際案例場景,我們直接禁用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
```
修改為具體的私網地址,示例如下:
```
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環境。