vip ( Virtual Internet Protocol )虚拟网络协议,在oracle rac 环境中用来保证高可用性的一种方法。当rac的一个节点出现故障,那么这个节点1的vip1漂移到集群中另一个节点2上。因为在节点2的监听器上并没有注册节点1的vip1,所以当客户端尝试通过节点1的vip1连接时会立即响应收到一个拒绝连接,这时客户端会重新发起向vip2连接请求。vip相对于ip的优点在于,使用ip当节点1故障时,连接会等待tcp/ip超时,这个超时默认时间会很长;而vip会立即响应发送给客户端,客户端接收到错误之后会立即发起向vip2的连接请求。
实验准备:
数据库 oracle 11g(11.2.0.3)
两个节点:节点1物理ip:192.168.80.101,vip1:192.168.80.201;
节点2物理ip:192.168.80.101,vip2:192.168.80.202;
windows client端
实验:
现在节点1crash掉
1.windows client端 tnsname.ora配置如下
-
RAC =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.201)(PORT = 1521))
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.202)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = rac)
-
)
-
)
发起连接等待不到1秒就可连接上:
2.在windows client端 tnsname.ora 中删除vip2
-
RAC =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.201)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = rac)
-
)
-
)
发起连接,
从而可以知道是节点1crash掉后,vip1只是漂移到节点2, 其实是通过vip2才连接上的。
3.客户端tnsname.ora中使用物理ip
-
RAC =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.101)(PORT = 1521))
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.102)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = rac)
-
)
-
)
发起连接:
可以连接上,但是物理ip是等待tcp/ip超时,然后才能通过ip2连接,所以等待的时间比较长。本次连接等待了30秒才连接上。
小结:使用客户端使用vip发起连接,可以在第一时间返回错误然后马上用vip2发起连接,达到秒级响应。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29593481/viewspace-1185574/
,如需转载,请注明出处,否则将追究法律责任。