靈活實現RAC三節點的負載均衡及TAF配置(三)
這兩天配置了一個三節點的RAC環境,想起前一段時間Thomas Zhang給我出的一個題目,配置一個三節點RAC環境的複雜負載均衡以及Transparent Application Failover的服務名。現在有環境了,可以將給出驗證後的結果了。
這篇解決其中一個節點沒有啟動時帶來的連線失敗問題。
靈活實現RAC三節點的負載均衡及TAF配置(一):http://yangtingkun.itpub.net/post/468/482683
靈活實現RAC三節點的負載均衡及TAF配置(二):http://yangtingkun.itpub.net/post/468/482724
上一篇的配置基本實現了負載均衡配置的需要,但是存在一點問題,當節點3失敗的時候,當前連線到節點3上的會話會自動FAILOVER到節點1和節點2上,但是新的會話嘗試連線到節點3,就會報錯。
SQL> CONN TEST/TEST@SERVICEB
已連線。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac3
下面關閉例項3:
$ srvctl stop inst -d testrac -i testrac3
再次檢查剛才的例項:
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac2
FAILOVER設定生效了,連線到例項3的會話自動切換到例項2上,但是這種配置沒有解決新連線的問題,如果這時再次連線例項3,則會報錯:
SQL> CONN TEST/TEST@SERVICEB
ERROR:
ORA-12521: TNS: 監聽程式無法解析連線描述符中給定的 INSTANCE_NAME
警告: 您不再連線到 ORACLE。
其實這個問題不難解決,修改TNSNAMES.ORA中的配置如下:
SERVICEB =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.227)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTRAC)
(INSTANCE_NAME = TESTRAC3)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(BACKUP = SERVICEA)
)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTRAC)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(BACKUP = SERVICEA_BACKUP)
)
)
)
(LOAD_BALANCE = no)
)
由於只牽扯到節點3的問題,因此只需要修改SERVICEB的配置,其他兩個配置SERVICEA和SERVICEA_BACKUP的配置不需要修改。
下面重現啟動例項3,再次執行剛才的測試:
SQL> CONN TEST/TEST@SERVICEB
已連線。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac3
SQL> SELECT INSTANCE_NAME FROM GV$INSTANCE;
INSTANCE_NAME
----------------
testrac3
testrac2
testrac1
現在3個節點都處於啟動狀態,下面仍然關閉節點3:
$ srvctl stop inst -d testrac -i testrac3
再次檢查當前連線的例項:
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac1
FAILOVER起作用了,連線到節點3上的會話重現連線到節點1上。再次透過SERVICEB服務連線到節點3上:
SQL> CONN TEST/TEST@SERVICEB
已連線。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac2
SQL> CONN TEST/TEST@SERVICEB
已連線。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac1
這次連線節點3沒有再次報錯,而是在節點1和節點2的例項上以負載均衡的方式實現連線,這樣新連線到例項3上的會話,就會例項3上已經建立的會話保持一致了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-608878/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 靈活實現RAC三節點的負載均衡及TAF配置(五)負載
- 靈活實現RAC三節點的負載均衡及TAF配置(二)負載
- 靈活實現RAC三節點的負載均衡及TAF配置(一)負載
- 靈活實現RAC三節點的負載均衡及TAF配置(四)負載
- 【RAC】RAC中的負載均衡和故障切換--TAF配置負載
- dubbo(三):負載均衡實現解析負載
- RAC負載均衡的簡單測試(三)負載
- Nginx 高階篇(三)負載均衡的實現Nginx負載
- LVS:三種負載均衡方式比較+另三種負載均衡方式負載
- orleans叢集及負載均衡實現負載
- 配置 RAC 負載均衡與故障轉移負載
- Oracle RAC 客戶端負載均衡配置Oracle客戶端負載
- [zt] RAC的負載均衡負載
- DNS負載均衡的配置與特點DNS負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載
- 伺服器負載均衡原理及實現伺服器負載
- nginx實現負載均衡Nginx負載
- 配置IIS的負載均衡負載
- 使用LVS實現負載均衡原理及安裝配置詳解負載
- 使用 LVS 實現負載均衡原理及安裝配置詳解負載
- 負載均衡之Haproxy配置詳解(及httpd配置)負載httpd
- 淺談RAC中的負載均衡負載
- HAProxy負載均衡器的安裝及配置負載
- Flume負載均衡配置負載
- apache 負載均衡配置Apache負載
- GRPC 負載均衡實現RPC負載
- HaProxy 實現 MySQL 負載均衡MySql負載
- Ribbon實現負載均衡負載
- Oracle負載均衡實現方式Oracle負載
- Nginx + IIS 實現負載均衡Nginx負載
- 兩種負載均衡的配置。負載
- Nginx實現簡單的負載均衡Nginx負載
- Nginx實現叢集的負載均衡配置過程詳解Nginx負載
- 使用LVS實現負載均衡的原理及安裝配置例項詳解負載
- 雙活資料中心負載均衡理解負載
- LVS 三種負載均衡方式比較負載
- 用Nginx實現Session共享的均衡負載NginxSession負載
- 前端快閃三:多環境靈活配置react前端React