暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

Oracle RAC 高可用测试 - 常见场景

原创 心在梦在²º²º 2022-07-14
3429

RAC 高可用测试

 
 
基本环境描述:

  1. 11g RAC + redhat 7.9 (2节点)
  2. Public 网络:team技术,2张网卡绑定
  3. Private 网络:2组
  4. 共享存储:直连主机方式
     
     
    本文简单的测试了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漂移至另外一节点,监听器不能远程监听掉线节点,所有业务重新连接至存活节点上。

 

以上测试场景,本次没有测试,有兴趣的朋友可以测试验证结果。

最后修改时间:2022-08-08 11:46:05
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论