从Oracle 11g开始,设置了SCAN ip,除此之外还有public ip,virtual ip,private ip,容易让人理不清。

下面逐一解释:

public ip:

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

virtual ip(vip):

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

SCAN:

Single Client Access Name,单一客户访问名称,意思是客户端(如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,这三个IP到底有啥区别呢?分别用在那些场合呢?来看看老外的回答。

  1. private IP address is used only for internal clustering processing (Cache Fusion)
    私有IP用于心跳同步,这个对于用户层面,可以直接忽略,简单理解,这个Ip用来保证两台服务器同步数据用的私网IP。
  2. virtual IP is used by database applications to enable fail over when one cluster node fails
    虚拟IP用于客户端应用,以支持失效转移,通俗说就是一台挂了,另一台自动接管,客户端没有任何感觉。

这也是为什么要使用RAC的原因之一,另一个原因,我认为是负载均衡。

  1. public IP adress is the normal IP address typically used by DBA and SA to manage storage, system and database.
    公有IP一般用于管理员,用来确保可以操作到正确的机器,我更愿意叫他真实IP。

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

例如:

下面的例子就是使用的VIP

infodb8 =

(DESCRIPTION=

(ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.81)(PORT= 1521))(ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.82)(PORT= 1521))(LOAD_BALANCE= yes)(FAILOVER= ON)(CONNECT_DATA=(SERVER= DEDICATED)(SERVICE_NAME= infodb)(FAILOVER_MODE=(TYPE=SELECT)(METHOD= BASIC)(RETRIES= 30)(DELAY= 5))))

下面的例子就是使用的Public IP,指定连接1机,注意红色字体infodb1进一步限制连接的实例。

INFODB83 =

(DESCRIPTION=

(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.83)(PORT= 1521)))(CONNECT_DATA=(SERVICE_NAME= infodb)(INSTANCE_NAME= infodb1))(HS = OK)

)

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

没有VIP时,Oracle客户端是靠“TCP/IP协议栈超时”来判断服务器故障。而TCP/IP协议栈是作为OS Kernel的一部分来实现,不同的OS有不同的阀值,用户获悉数据库异常的时间完全取决于OS Kernel的实现,虽然有些OS允许修改这个阀值,但是会对其它程序产生未知影响。因此,oracle RAC引入了VIP,从而避开对TCP协议栈超时的依赖。
VIP和IP最主要的不同之处在于:VIP是浮动的,而IP是固定的。在所有节点都正常运行时,每个节点的VIP会被分配到public NIC上;在linux下ifconfig查看,public网卡上是2个IP地址;如果一个节点宕机,这个节点的VIP会被转移到还在运行的节点上。也就是幸存的节点的public NIC这个网卡上,会有3个IP地址。
当一个节点宕机,这个节点真实IP就连接不上了,但是这个节点的虚拟IP是可以连接的,他会自动把客户端的连接请求转接给存活的节点。
在tnsname.ora文件里,指定Address列表,客户端会随机选择一个节点来连接数据库,而不是顺序选择的。

VIP特点:
1 VIP是在clusterware安装最后阶段,通过脚本VIPCA创建的;
2 VIP作为一个Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态;
3 VIP会绑定到节点的public 网卡上;那么public网卡就有两个地址了;
4 当某个节点发生故障时,CRS会把故障节点的VIP转移到其他节点上;
5 每个节点的Listener会同时在public网卡的public IP和VIP两个地址上监听;
6 客户端的tnsname.ora一般会配置指向节点的VIP;
从上面第6条可以引出一个问题。如果增加一个节点,那么客户端的tnsname.ora需要加入新增节点的VIP。那么想象一下:多个客户端,增加多个节点,那么维护起来特别麻烦。因此到了Oracle11gR2,引入了一个scan的概念。
scan,single client access name。简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在DNS中可以解析为三个ip地址,客户端连接的时候只需要知道这个名称,并连接即可,每个SCAN VIP对应一个scan listener,cluster内部的service在每个scan listener上都有注册,scan listener接受客户端的请求,并foward到不同的Local listener中去,还是由local 的listener提供服务给客户端。
注意:scan不一定要resolve到三个ip,一个也够了。只不过为了防止scan单点故障而推荐3个。
VIP 原理和特点
Oracle 的TAF 就是建立在VIP 技术之上的。 IP 和VIP 区别在与: IP 是利用TCP层超时, VIP 利用的是应用层的立即响应。VIP 它是浮动的IP。 当一个节点出现问题时会自动的转到另一个节点上。
假设有一个2个节点的RAC,正常运行时每个节点上都有一个VIP。 VIP1 和VIP2. 当节点2发生故障,比如异常关系。 RAC 会做如下操作:
1). CRS 在检测到rac2节点异常后,会触发Clusterware 重构,最后把rac2节点剔除集群,由节点1组成新的集群。
2). RAC的Failover 机制会把节点2的VIP转移到节点1上,这时节点1的PUBLIC 网卡上就有3个IP 地址: VIP1,VIP2, PUBLIC IP1.
3). 用户对VIP2的连接请求会被IP层路由转到节点1
4). 因为在节点1上有VIP2的地址,所有数据包会顺利通过路由层,网络层,传输层。
5). 但是,节点1上只监听VIP1和public IP1的两个IP地址。并没有监听VIP2,故应用层没有对应的程序接收这个数据包,这个错误立即被捕获。
6). 客户段能够立即接收到这个错误,然后客户段会重新发起向VIP1的连接请求。
VIP 特点:
1). VIP 是通过VIPCA脚本创建的
2). VIP 作为Nodeapps类型的CRS Resource 注册到OCR中,并由CRS 维护状态。
3). VIP 会绑定到节点的public 网卡上,故public 网卡有2个地址。
4). 当某个节点发生故障时,CRS 会把故障节点的VIP 转移到其他节点上。
5). 每个节点的Listener 会同时监听public 网卡上的 public ip 和VIP
6). 客户端的tnsnames.Ora 一般会配置指向节点的VIP.

Oracle RAC中的几个IP相关推荐

  1. ORACLE RAC 中 SRVCTL 命令详细说明

    ORACLE RAC 中 SRVCTL 命令详细说明           注:             RAC:     Real Application Clusters             S ...

  2. oracle sequences优化_性能优化-Oracle RAC中的Sequence Cache问题

    性能优化-Oracle RAC中的Sequence Cache问题 enq: SQ - contention 在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这 ...

  3. srvctl 在oracle下运行,ORACLE RAC 中 SRVCTL 命令详细说明

    ORACLE RAC 中 SRVCTL 命令详细说明           注:             RAC:     Real Application Clusters             S ...

  4. Oracle RAC中srvctl命令详细说明

    SRVCTL Add 添加数据库或实例的配置信息.在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配. srvctl add database -d ...

  5. rman打开oracle归档日志,Oracle RAC中使用RMAN管理归档日志

    RMAN归档配置的两种方案1.在Oracle asm和集群文件系统时的归档方案 对于Oracle RAC来说首选是使用Oracle asm作为reocvery区域.可选择的你也可以使用集群文件系统的归 ...

  6. oracle实例查询IP,Oracle数据库中获取访问者的IP地址或主机名的方法

    有时我们需要在Oracle数据库中获取访问者的局域网或Internet网的主机名或IP地址.在Oracle中可以使用下面的方法来实现: Oracle包utl_inaddr 作用:用于取得局域网或Int ...

  7. oracle一个lun多大,Oracle RAC中验证LUN_ID对应情况

    在ORACLE RAC安装的时候, 共享文件使用RAW(裸设备)或者ASM方式 由于盘符不一致造成失败是最常见的故障之一,所以在准备阶段检测各个节点的相同盘符对应的是不是同一个lun就是必须的步骤,判 ...

  8. 关于RAC中监听配置IP=FIRST的说明

    为RAC自动配置的监听器(listener)一般都可以看到使用了IP=FIRST选项,以使得监听在所给出主机名的相关ip端点.默认情况下不使用IP=FIRST选项,监听器总是在所有该主机的网络接口上监 ...

  9. ORACLE RAC中的oc4j和gsd资源以及RAC相关的进程

    1.RAC相比单实例数据库多出的进程: LMS - Gobal Cache Service Process 全局缓存服务进程 LMD - Global Enqueue Service Daemon 全 ...

最新文章

  1. Java关键字及其作用
  2. ssm框架requestmapping找不到_框架学习,就是介么简单
  3. 编程没基础学python多长时间-零基础学Python的过程有多难?需要多久?
  4. python中操作数据库中游标的使用方法
  5. 更换mysql_3分钟学会mysql数据库的逻辑架构原理
  6. Pytorch —— 损失函数(二)
  7. java并发包作者lee_Java的一些并发包
  8. php2.3.2,自动加载 - ThinkPHP3.2完全开发手册
  9. matlab中怎么求矩阵的转置
  10. 【Missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64】 解决方法
  11. iOS-性能优化的那些事
  12. 雷达原理---时频分析--2.短时傅里叶变换
  13. 举个栗子!Tableau 技巧(183):快速实现部分类别的排序
  14. jAvA中deprecate,Deprecate in Java 1.6
  15. 交换机短路_交换机端口短路 导致上网不正常
  16. POJ2126 多项式分解定理
  17. 英国一名28岁女子晋升曾祖母
  18. 100个世界上鲜为人知的奇闻怪事小知识(转)
  19. Excel表格中行列互换的方法?
  20. 计算机大类和三不限哪个好考,上岸经验 !公考千万别报“三不限”职位!

热门文章

  1. DDOS攻击 — 棋牌游戏创业公司的生死劫
  2. 容器PaaS资源导航
  3. 如何用单片机写出类似printf的函数
  4. 蓝桥《最大和》python题解
  5. 易语言Linux编写网页访问,用易语言做一个网页post采集和登录
  6. PyQt5四种窗口布局
  7. 计算机中专升大专难不难,自考大专难吗?
  8. Unity3D导航网格,矩阵旋转,欧拉旋转
  9. php服装商城网站毕业设计源码241505
  10. FL Studio最新20.9中文版DJ电子音乐制作神器