oracle 11gr2 rac中的有几种IP

60次阅读
没有评论

共计 2242 个字符,预计需要花费 6 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 oracle 11gr2 rac 中的有几种 IP,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

打开一个 RAC 节点的 /etc/hosts 文件

cat /etc/hosts

# Public IP

192.168.1.138rac1.localdomain rac1

192.168.1.139rac2.localdomain rac2

#Private IP

172.16.10.138rac1-priv.localdomain rac1-priv

172.16.10.139rac2-priv.localdomain rac2-priv

#Virtual IP

192.168.1.140  rac1-vip.localdomain rac1-vip

192.168.1.141  rac2-vip.localdomain rac2-vip

#SCAN IP

192.168.1.142  rac-scan.localdomain rac-scan

这个文件里设计四种 IP,分别有 Public IP、Private IP、Virtual IP、SCAN IP

private ip: 即内部 IP。用于节点间的通信,通信内容包括 network heartbeat 和 cache fusion
public  ip: 即外部 IP。用于提供对外数据服务。
Virtual IP: 即虚拟 IP。其最大作用是用于故障切换。

Oracle RAC 中每个节点都有一个虚拟 IP,简称 VIP,与公网 PUBLIC  IP 在同一个网段。vip 附属在 public 网口接口。
Virtual IP 和 PUBLIC IP 最主要的不同之处在于:VIP 是浮动的,而 PUBLIC IP 是固定的。在所有节点都正常运行时,每个节点的 VIP 会被分配到 public NIC 上;在 linux 下 ifconfig 查看,public 网卡上是 2 个 IP 地址;如果一个节点宕机,这个节点的 VIP 会被转移到还在运行的节点上。也就是幸存的节点的 public NIC 这个网卡上,会有 3 个 IP 地址。

如果没有 vip,连接失败节点的 process 会有一个比较长的 tcp 超时等待,才能返回错误,有了 vip 后,节点失效后,由于 vip 漂移到其它节点,连接该 vip 的 process 很快就能返回错误,从而更快的尝试连接其它活动的节点,避免客户端反复连接 node1 的实例。如果应用程序和客户机都配置了透明的应用程序故障转移选项,可以在客户端重新连接到剩余的实例。

使用 Virtual ip 的另一个原因,我认为是负载均衡。客户端在配置 tnsnames.ora 时,有些场合是要使用的 vip,而有些场合又必须使用 Public IP。例如,当你在定位一个数据库的死锁时,使用 Public IP,可以确保连到你想处理的机器。相反此时使用 VIP 时,会出现不确定性,因为服务器默认是开启负载均衡的,也就是有可能你想连 A 机,系统却给你分配了 B 机。

SCAN IP:在 oracle 11gR2 中,SCAN  IP 是作为一个新增 IP 出现的, scan ip 其实是 oracle 在客户端与数据库之间,新加的一个连接层,当有客户端访问时,连接到 SCAN IP LISTENER,而 SCAN IP LISTENER 接收到连接请求时,会根据 LBA 算法将该客户端的连接请求,转发给对应的 instance 上的 VIP LISTENER,从而完成了整个客户端与服务器的连接过程。简化如下:
client – scan listener – local listener – local instance
你也可以把 scan 理解为一个虚拟主机名,它对应的是整个 RAC 集群。客户端主机只需通过这个 scan name 即可访问数据库集群的任意节点。当然访问的节点是随机的,oracle 强烈建议通过 DNS Server 的 round robin 模式配置解析 SCAN,实现负载均衡(即轮换连接 SCAN 对应的 IP 地址)。这有点类似通过 vip 和 listener loadbalance 配置实现负载均衡的原理。

那么有了 Virtual ip 后为什么还增加了一个 SCAN IP 呢?

在 oracle 11.2 之前,client 链接数据库的时候要用 vip,假如你的 oracle cluster 有 4 个节点,那么客户端的 tnsnames.ora 中就对应有四个主机 vip 的一个连接串,如果 cluster 增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个 tnsnames.ora。

引入了 scan 以后,就方便了客户端连接的一个接口,顾名思义 single client access name,简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在 DNS 中可以解析为三个 ip 地址,客户端连接的时候只需要知道这个名称,并连接即可,每个 SCAN VIP 对应一个 scan listener,cluster 内部的 service 在每个 scan listener 上都有注册,scan listener 接受客户端的请求,并 foward 到不同的 Local listener 中去,还是由 local 的 listener 提供服务给客户端。

scan ip 主要是为了简化客户端连接,假如你的 oracle 集群有 20 个节点,客户端连接的时候,是不是需要配置 20 个 vip,如果用 scan,只需要一个 scan name 就行了,剩下的事情,scan 帮你做了。

看完了这篇文章,相信你对“oracle 11gr2 rac 中的有几种 IP”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2242字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)