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

/etc/hosts 集群IP

原创 大胖 2022-12-12
410

Private IP

对于Oracle集群,私网通信是非常重要的,因为节点和节点之间的通信绝大部分都是要通过私网来实现的。
私网通信基本上可以分为两种:第一种是集群层面之间的通信;第二种是数据库实例之间的通信。
第一种通信(例如:节点间的网络心跳)的主要特点是持续存在、实时性要求高,但是数据量比较小,所以通过TCP/IP协议传递就可以了。
第二种通信是缓存融合(Cache Fusion)造成的实例之间的数据传输,其特点是数据量很大,而且速度要求非常高,TCP/IP协议此时已经不能满足要求了,
所以需要使用UDP或者RDS,同时Oracle也一直建议用户对集群的私网进行高可用性和负载均衡的配置。

与Public IP一样,Private IP称为私网IP或心跳IP,它也是网卡上的真实IP,每个节点在安装Oracle集群软件之前都需要事先配置Private IP。
Private IP用于集群间多节点心跳同步和Cache Fusion等任务,在Oracle 12c中还需要担任Flex ASM的任务。
当然,如果不设置Private IP而是由Public IP也可以去完成这些任务。
但是,这样做只会使Public IP所在网卡负载过大,一旦网卡设备发生故障,集群将会分裂踢出掉一部分节点保证一致性,使RAC性能不稳定。
对于Oracle 10g和11gR1版本的集群,Oracle并不提供私网的高可用性和负载均衡特性,
而是建议用户在操作系统层面配置(例如Linux bonding、AIX etherchannel等),从而开启操作系统层面的多网卡绑定技术实现IP Failover。
从Oracle 11.2.0.2版本开始推出的HAIP技术提供了私网的高可用性和负载均衡特性,从而替代了操作系统层面的网卡绑定技术,功能更强大更兼容。

Public IP

Public IP称为公网IP,它是网卡上的真实IP。
每个节点在安装Oracle软件之前都需要事先配置Public IP。Oracle通过Public IP对外提供网络服务。
如果RAC中Public IP所在的网卡设备故障,那么该节点将无法继续对外提供服务,
所以,建议通过开启操作系统层面的多网卡绑定技术来实现IP Failover。
如果是双节点RAC环境,那么需要在tnsnames.ora文件中写入对应两个节点的Public IP、端口号以及通信协议。
如果没有开启负载均衡功能(软/硬件),那么当tnsnames.ora文件中第一个ADDRESS对应的主机故障或关机,
那么在客户端连接时,Oracle会等待一个网络超时,然后继续连接第二个ADDRSS对应的数据库实例。
即使RAC一个节点依然可以对外提供服务,用户每次连接都需要等待几秒钟。网络超时会让用户体验相当不好。
所以,在Oracle 10g RAC中VIP(Virtual IP)的出现完美地解决了这个问题。

Virtual IP(VIP)

VIP是Oracle 10g RAC的新特性,称为虚拟IP。
VIP是在Public IP所在的网卡上由Oracle集群软件虚拟出来的一个IP,需要和Public IP设置在同一个子网网段中。
Oracle集群软件安装之前只需定义好(/etc/hosts文件)即可,而无需事先配置。
在正常情况下,VIP和Public IP的功能是一模一样的。后台进程PMON对每个节点的VIP所在的监听器注册实例信息,
本地监听器中会看到两个地址host,一个是Public IP,一个是VIP。
当节点故障时,Oracle集群软件会把VIP自动飘逸到其它节点上,但是本地监听器却没有飘逸到其它节点上。
客户端tnsnames.ora文件中host选项不再需要配置Public IP而选择配置VIP,
这样做的好处是在双节点RAC架构中当第一个节点故障时,第二个节点会有两个VIP,
客户端连接第一个VIP失败后会立即连接第二个VIP对应的实例,整个切换过程是非常短暂的,用户完全感受不到RAC架构中有节点故障。
整个连接过程可以说对用户是透明了。但是并非真正意义上的透明,用户还是可以知道整个RAC架构是由多少个节点组成,
所以,Oracle 11g RAC中推出了SCAN IP的新概念,可以实现对用户连接的透明性,用户不再需要知道整个RAC架构中是由多少个节点组成的。

VIP的特点:

(1)VIP是通过VIPCA脚本创建的。

(2)VIP作为Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态。

(3)VIP会绑定到节点的Public网卡上,故Public网卡有两个地址。

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

(5)每个节点的LISTENER会同时监听Public网卡上的Public IP和VIP。

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

SCAN IP

从Oracle 11gR2 RAC开始引入SCAN(Single Client Access Name,集群的单客户端访问名称)IP的概念,
相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP LISTENER。
在客户端的tnsnames.ora配置文件中,只需要配置SCAN IP,然后用户即可访问数据库。
客户端通过SCAN IP、SCAN IP LISTENER来负载均衡地连接到RAC数据库。同之前各版本的RAC相比,使用SCAN IP的好处就是,
当后台RAC数据库添加、删除节点时,客户端配置信息无需修改。SCAN提供一个域名来访问RAC,域名可以解析1个到3个(注意,最多3个)SCAN IP,
可以通过DNS、GNS或/etc/hosts文件来解析实现。需要注意的是,SCAN IP、VIP和Public IP必须属于同一子网。

GNS VIP

GNS VIP是Oracle 11g RAC新特性。
在传统RAC架构中,Public IP、Private IP、Virtual IP、SCAN IP都是预先配好的。
如果开启了GNS服务只需要预先配置Public IP、Private IP即可,Virtual IP、SCAN IP都是由GNS服务从DHCP服务器动态获取的。
配置GNS服务需要事先配置DNS和DHCP服务,GNS VIP可以绑定在任意一个节点的Public网卡上来实现GNS服务,
如果没有配置GNS服务就不需要配置GNS VIP。配置起来相对传统架构来说复杂一些,所以,在Oracle 11g RAC架构中很少会看到GNS VIP。
12c Flex Cluster架构必须配置GNS VIP。

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

评论