RAC 高可用測試
?
?
基本環境描述:
- 11g RAC + redhat 7.9 (2節點)
- Public 網絡:team技術,2張網卡綁定
- Private 網絡:2組
- 共享存儲:直連主機方式
?
?
本文簡單的測試了RAC安裝后,幾個常見的高可用測試場景。
?
某環境測試過程:
測試使用的tnsnames.ora
-- 使用scan-ip連接數據庫
YPCMIS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = YPCMIS)
)
)
?
1.負載均衡測試
步驟:開啟多個窗口,連接數據庫。
sqlplus system/oracle@YPCMIS
select instance_name from v$instance;
結果:既能連接節點1,也能連接節點2,且基本保持循環,實現負載均衡功能。
?
2.高可用測試
步驟:分別在實例1、實例2中創建測試表,并執行批量插入操作。
-- node1:
create table t1(a int primary key,b int);
BEGIN
FOR X IN 1 .. 100000 LOOP
INSERT INTO t1 VALUES (x,x);
COMMIT;
DBMS_LOCK.SLEEP(0.2);
END LOOP;
END;
/
-- node2:
create table t2(a int primary key,b int);
BEGIN
FOR X IN 1 .. 100000 LOOP
INSERT INTO t2 VALUES (x,x);
COMMIT;
DBMS_LOCK.SLEEP(0.2);
END LOOP;
END;
/
2.1 測試public網卡綁定
1) 輪詢拔掉節點1的一根網線
2) 輪詢拔掉節點2的一根網線
結果:CRS狀態正常,數據庫連接未丟失,無異常。Public 網絡正常。
2.2 測試心跳網絡(2組)
1) 輪詢拔掉節點1的心跳網絡
結果:節點1心跳網絡丟失一組,但是CRS狀態正常,數據庫連接未丟失,無異常。
2) 輪詢拔掉節點2的心跳網絡
結果:節點2心跳網絡丟失一組,但是CRS狀態正常,數據庫連接未丟失,無異常。
2.3 測試存儲(拔光纖線)
1) 輪詢拔掉節點1的光纖線
結果:節點1存儲鏈路丟失一組,但是CRS狀態正常,數據庫連接未丟失,無異常。
2) 輪詢拔掉節點2的光纖線
結果:節點2存儲鏈路丟失一組,但是CRS狀態正常,數據庫連接未丟失,無異常。
?
3.Failover測試
1)reboot 任意主機
結果:節點1主機直接重啟,實例1連接丟失,CRS集裝狀態節點2正常,scan listener和節點1 VIP 自動漂移到節點2,所有業務重新連接至存活節點上。
結果:待節點1主機重啟完成后,節點1自動加入集群,數據庫實例自動啟動。
2)客戶端TFA測試
客戶端tnsnames配置參考
YPCMIS_TAF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = YPCMIS)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
)
)
)
步驟:使用TAF客戶端連接到數據庫,關閉連接的節點1。
sqlplus system/oracle@YPCMIS_TAF
srvctl stop instance -d YPCMIS -i YPCMIS1
srvctl status database -d YPCMIS
結果:待節點1實例關閉后,原來連接在節點1的session沒有斷開,自動連到節點2。
有興趣的朋友,可以配置服務端的TAF測試。
?
4.刪除測試表
?
5.其余測試場景
5.1實例異常崩潰
步驟:在任一節點使用KILL命令結束SMON進程。
結果:實例被KILL之后,數據庫自動啟動該實例。
5.2集群件異常崩潰
步驟:在任一節點使用KILL命令結束OCSSD.BIN進程。
結果:OCSSD.BIN進程結束后,30秒后,節點重啟。
5.3監聽器異常奔潰
步驟:在任一節點使用KILL命令結束監聽器。
結果:監聽被KILL十分鐘內會自動重新拉起。
5.4拔除節點所有公網網線
步驟:在任一節點拔除所有公網網線,檢查集群是否正常。
結果:VIP漂移至另外一節點,監聽器不能遠程監聽掉線節點,所有業務重新連接至存活節點上。
?
以上測試場景,本次沒有測試,有興趣的朋友可以測試驗證結果。




