暂无图片
暂无图片
14
暂无图片
暂无图片
4
暂无图片

Oracle RAC中的VIP和SCAN IP

DBA小记 2020-10-27
11015

Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网IP在同一个网段。VIPIP最主要的不同之处在于:VIP是浮动的,而IP是固定的。在所有节点都正常运行时,每个节点的VIP会被分配到public NIC上;在linuxifconfig查看,public网卡上是2IP地址;如果一个节点宕机,这个节点的VIP会被转移到还在运行的节点上。也就是幸存的节点的public NIC这个网卡上,会有3IP地址。当一个节点宕机,这个节点真实IP就连接不上了,但是这个节点的虚拟IP是可以连接的,他会自动把客户端的连接请求转接给存活的节点。

tnsname.ora文件里,指定Address列表,客户端会随机选择一个节点来连接数据库,而不是顺序选择的。

VIP特点:

1VIP是在clusterware安装最后阶段,通过脚本VIPCA创建的;

2VIP作为一个Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态;

3VIP会绑定到节点的public 网卡上;那么public网卡就有两个地址了;

4)当某个节点发生故障时,CRS会把故障节点的VIP转移到其他节点上;

5)每个节点的Listener会同时在public网卡的public IPVIP两个地址上监听;

6)客户端的tnsname.ora一般会配置指向节点的VIP

 从上面可以看出,如果增加一个节点,那么客户端的tnsname.ora需要加入新增节点的VIP。多个客户端,增加多个节点,那么维护起来特别麻烦。因此到了Oracle11gR2,引入了一个SCAN(SingleClient Access Name)的概念。

客户端可以通过SCAN特性负载均衡地连接到RAC数据库。SCAN提供一个域名来访问RAC,域名可以解析1个到3个(注意,最多3个)SCAN IP,我们可以通过DNS或者GNS来解析实现。GNS(GridNaming Service)Oracle 11g R2的新功能,可以通过DHCP服务为节点和SCAN分配VIPSCAN IP。另外还有个优点是,对于新加入集群的节点,它会自动分配VIP地址,更新集群资源,客户端依然通过SCAN特性负载均衡地连接到新增集群节点上。

SCAN  IP是作为一个新增IP出现的, scan ip其实是oracle在客户端与数据库之间,新加的一个连接层,当有客户端访问时,连接到 SCAN IP LISTENERSCAN IP LISTENER接收到连接请求时,会根据 LBA 算法将该客户端的连接请求,转发给对应的instance上的VIP LISTENER,从而完成了整个客户端与服务器的连接过程

每个SCANVIP对应一个scan listenercluster内部的service在每个scan listener上都有注册,scanlistener接受客户端的请求,并foward到不同的Local listener中去,还是由locallistener提供服务给客户端。

  注:SCAN也可以使用hosts文件来解析,SCAN不一定要resolve到三个IP,一个也可以,但这种方法Oracle不推荐使用的。但尽管如此,很多生产上依然这样使用,也就是废弃了11g的新特性SCAN,而是依然采用VIP连接方式。


文章转载自DBA小记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

贾桂权
暂无图片
11月前
评论
暂无图片 0
Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网IP在同一个网段。
11月前
暂无图片 点赞
评论
筱悦星辰
暂无图片
1年前
评论
暂无图片 0
脾气不能大于本事、地位不能大于德行,财富不能大于认知,欲望不能大于能力。
1年前
暂无图片 点赞
评论
yBmZlQzJ
暂无图片
2年前
评论
暂无图片 0
重点无法控制住SCAN IP的负载均衡功能,或许只能通过SERVICE_NAME来控制
2年前
暂无图片 点赞
评论
暂无图片
2年前
评论
暂无图片 0
重点无法控制住SCAN IP的负载均衡功能,或许只能通过SERVICE_NAME来控制
2年前
暂无图片 点赞
评论