细说oracle 11g rac 的ip地址

前端之家收集整理的这篇文章主要介绍了细说oracle 11g rac 的ip地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

oracle11g开始,设置了SCAN ip,除此之外还有public ip,virtual ip,private ip,容易让人犯晕。

下面逐一解释:

public ip

类似与单实例的oracle数据库ip,主要用于管理\访问。

virtual ip(vip):

oracle在rac架构中专用,这个vip用于实现故障转移,当一个节点发生故障时,其vip会“浮动”到另外一个正常的节点,也即该正常节点对应着两个vip了。

SCANSingleClient AccessName,单一客户访问名称,意思是客户端(如jdbc,pl/sql等)访问数据库时的公共域名,由于rac是多节点的,客户端要访问数据库,通过scan机制,只需要提供一个访问名称,oracle rac会自动为客户端分配一个节点,这对客户端来说是透明的。

private ip:私有ip,oracle 内部用于节点间通讯的ip,不对外开放。

public ip:

必须是专用ip,必须在安装oracle rac前配置好,能与网络连通。public ip,vip,scan ip必须在同一个网络网段内。

vip必须是专用ip,必须安装oracle rac前配置好,能与网络连通,public ip,vip,scan ip必须在同一个网络网段内。该ip及域名虽然配置,但必须保持不能使用(不能被访问,如ping)。

scan 建议通过dns配置三个专用ip,在安装前必须配置好,当有请求者时,由dns随机分配。暂不使用。scan ip需要给出唯一的名字,也即三个ip对应一个域名。名字只能是字符和'-'。oracle不推荐通过hosts文件来配置,那样只能得到一个scan ip。

scan也是一个虚拟ip名,类似与虚拟ip名,但不同的是,虚拟ip是一个节点一个ip地址一个域名,scan是针对整个cluster的,一个域名对应着多个节点,多个ip地址。

private ip必须是专用ip,必须在安装前配置好,必须在一个专用私有网络中,只能被另外的rac节点解析,不能被其它网络解析。从11.2.0.2开始,oracle可以自动使用至多4块私有网卡,以实现内部节点的负载均衡及冗余。

GNS:Grid Naming Service。

以下是网上的资料

Oracle RAC环境下,每个节点都会有多个IP地址,分别为Public/Private/Vip,这三个到底有啥区别呢?分别用在那些场合呢?来看看老外的回答。
1. private IP address is used only for internal clustering processing (CacheFusion)
私有@H_301_119@IP用于心跳同步,这个对于用户层面,可以直接忽略,简单理解,这个@H_301_119@Ip用来保证两台服务器同步数据用的私网@H_301_119@。
2. virtual IP is used by database applications to enable fail over when onecluster node fails
虚拟@H_301_119@用于客户端应用,以支持失效转移,通俗说就是一台挂了,另一台自动接管,客户端没有任何感觉。
这也是为什么要使用@H_301_119@RAC的原因之一,另一个原因,我认为是负载均衡。
3. public IP adress is the normal IP address typically used by DBA and SA tomanage storage,system and database.
公有@H_301_119@一般用于管理员,用来确保可以操作到正确的机器,我更愿意叫他真实@H_301_119@。

通过上述解释,不难理解作为一个DBA,在配置tnsnames.ora时,有些场合是要使用的vip,而有些场合又必须使用public IP。例如,当你在定位一个数据库的死锁时,使用public ip,可以确保连到你想处理的机器,相反此时使用虚拟ip时,会出现不确定性,因为服务器默认是开启负载均衡的,也就是有可能你想连A机,系统却给你分配了B机。例如:


1.下面的例子就是使用的VIP


infodb8=

(DESCRIPTIONADDRESS=(PROTOCOLTCP)(HOST138.*181PORT1521))82LOAD_BALANCEyes)FAILOVERONCONNECT_DATA

SERVERDEDICATED
(SERVICE_NAME=infodb)FAILOVER_MODE=

TYPESELECT)

METHODBASICRETRIES30DELAY5))


Public IP,指定连接1机,注意红色字体infodb1进一步限制连接的实例。

2.INFODB833.4.ADDRESS_LIST5..*.836.7.8.infodb9.INSTANCE_NAMEinfodb110. 11. HSOK12. )

Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网在同一个网段。

没有时,Oracle客户端是靠“TCP/IP协议栈超时来判断服务器故障。而TCP/IP协议栈是作为OS Kernel的一部分来实现,不同的OS有不同的阀值,用户获悉数据库异常的时间完全取决于的实现,虽然有些允许修改这个阀值,但是会对其它程序产生未知影响。因此,oracle RAC引入了,从而避开对TCP协议栈超时的依赖。

最主要的不同之处在于:是浮动的,而是固定的。在所有节点都正常运行时,每个节点的会被分配到public NIC上;在linuxifconfig查看,public网卡上是2地址;如果一个节点宕机,这个节点的会被转移到还在运行的节点上。也就是幸存的节点的这个网卡上,会有3地址。

当一个节点宕机,这个节点真实就连接不上了,但是这个节点的虚拟是可以连接的,他会自动把客户端的连接请求转接给存活的节点。
tnsname.ora文件里,指定Address列表,客户端会随机选择一个节点来连接数据库,而不是顺序选择的。

VIP
特点:
1 VIP
是在clusterware安装最后阶段,通过脚本VIPCA创建的;
2 VIP
作为一个Nodeapps类型的CRS Resource注册OCR中,并由CRS维护状态;
3 VIP
会绑定到节点的public 网卡上;那么网卡就有两个地址了;
4
当某个节点发生故障时,会把故障节点的转移到其他节点上;
5
每个节点的Listener会同时在网卡的public IP两个地址上监听;
6
客户端的一般会配置指向节点的

从上面第6条可以引出一个问题。如果增加一个节点,那么客户端的需要加入新增节点的。那么想象一下:多个客户端,增加多个节点,那么维护起来特别麻烦。因此到了Oracle11gR2,引入了一个scan的概念。

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

注意:不一定要resolve到三个,一个也够了。只不过为了防止单点故障而推荐个。
VIP原理和特点

TAF就是建立在技术之上的。区别在与:是利用层超时,利用的是应用层的立即响应。它是浮动的当一个节点出现问题时会自动的转到另一个节点上。

假设有一个个节点的RAC,正常运行时每个节点上都有一个VIP1VIP2.当节点发生故障,比如异常关系。RAC会做如下操作:

1).CRS在检测到rac2节点异常后,会触发Clusterware重构,最后把节点剔除集群,由节点组成新的集群。

2).RACFailover机制会把节点转移到节点上,这时节点PUBLIC网卡上就有地址:VIP1,VIP2,PUBLICIP1.

3).用户VIP2的连接请求会被层路由转到节点1

4).因为在节点上有的地址,所有数据包会顺利通过路由层,网络层,传输层。

5).但是,节点上只监听publicIP1的两个地址。并没有监听,故应用层没有对应的程序接收这个数据包,这个错误立即被捕获。

6).客户段能够立即接收到这个错误,然后客户段会重新发起向的连接请求。

VIP特点:

1).VIP是通过脚本创建的

2).VIP作为CRSResource维护状态。

3).VIP网卡上,故网卡有个地址。

转移到其他节点上。

会同时监听网卡上的publicipVIP

tnsnames.OraVIP.

原文链接:https://www.f2er.com/oracle/211581.html

猜你在找的Oracle相关文章