Oracle RAC中各种IP的作用 oracle rac 169.254
lipiwang 2024-10-18 09:38 9 浏览 0 评论
从Oracle 11g开始,安装RAC至少需要7个IP地址,两块网卡(一块公网网卡,一块私网网卡),其中public、vip和scan都在同一个网段,使用的是公网网卡,private在另一个网段,使用的是私网网卡。主机名不能包含下横线,如:RAC_01是不允许的。通过执行ifconfig -a检查两个节点的网络设备名称是否一致。另外,在配置了/etc/hosts文件后,在安装RAC之前,公网、私网共4个IP可以ping通,其它3个IP不能ping通才是正常的。在安装RAC时,其IP地址的规划类似于下表所示:
其在/etc/hosts文件中的配置如下所示:
1[root@raclhr-12cR1-N2 ~]# more /etc/hosts
2127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
3::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
4#Public IP
5192.168.59.160 raclhr-12cR1-N1
6192.168.59.161 raclhr-12cR1-N2
7#Private IP
8192.168.2.100 raclhr-12cR1-N1-priv
9192.168.2.101 raclhr-12cR1-N2-priv
10#Virtual IP
11192.168.59.162 raclhr-12cR1-N1-vip
12192.168.59.163 raclhr-12cR1-N2-vip
13#Scan IP
14192.168.59.164 raclhr-12cR1-scan
下面分别介绍一下RAC环境中的几种IP及其作用。
(一)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)的出现完美地解决了这个问题。
(二)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技术提供了私网的高可用性和负载均衡特性,从而替代了操作系统层面的网卡绑定技术,功能更强大更兼容。
(三)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。
可以使用如下命令让节点1的VIP强制漂移到节点2上去:
1crsctl relocate resource ora.raclhr-11gr2-n1.vip -n raclhr-11gR2-N2 -f
以下命令针对Oracle 11g版本之前:
1crs_relocate ora.lhr-11gr2-rac1.vip -c lhr-11gR2-rac2 -f
(四)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。
(六)HAIP(Highly Available IP)
在Oracle 11.2.0.2之前,私网的冗余一般是通过在OS上做网卡绑定(如Bond等)来实现的,从Oracle 11.2.0.2版本开始推出HAIP(Highly Available IP)技术替代了操作系统层面的网卡绑定技术,功能更强大、更兼容。HAIP通过其提供的独特的169.254.*网段的IP地址实现集群内部链接的高可用及负载均衡。所以,在11.2.0.2或更高版本安装RAC的时候需要注意169.254.*的IP地址不能被占用。有了HAIP技术则可以不再需要借助任何第三方的冗余技术来实现私网网卡的冗余。
资源ora.cluster_interconnect.haip将会启动一个到四个本地HAIP地址附在Private网络适配器上(私网网卡)。通过HAIP完成Oracle RAC和ASM等内部通讯。如果某一个私有网卡物理损坏,那么该网卡上的HAIP地址会漂移到其它的可用的私有网络上。多个私网网卡可以在安装阶段定义,也可以在GRID配置完成之后,通过调用$GRID_HOME/bin/oifcfg setif工具(命令为:oifcfg setif -global eth2/192.168.1.0:cluster_interconnect)来配置HAIP。
HAIP的个数取决于GRID激活的私网网卡的个数。如果只有1块私网网卡,那么GRID将会创建1个HAIP。如果有两块私网网卡,那么GRID将会创建两个HAIP。若超过两块私网网卡则GRID创建4个HAIP。GRID最多支持4块私网网卡,而集群实际上使用的HAIP地址数则取决于集群中最先启动的节点中激活的私网网卡数目。如果选中更多的私网网卡作为Oracle的私有网络,那么多余4个的不能被激活。
管理ora.cluster_interconnect.haip这个资源的是ohasd.bin进程。其对应的log位于$GRID_HOME/log/<nodename>/ohasd/ohasd.log以及$GRID_HOME/log/<nodename>/agent/ohasd/orarootagent_root/orarootagent_root.log这两个位置。在HAIP资源online以后,通过操作系统命令ifconfig -a就能查看到多了类似于eth1:1的虚拟网卡,HAIP地址为169.254.X.X。当然也可以在数据库级别通过GV$CLUSTER_INTERCONNECTS视图查看HAIP的地址。HAIP对应的地址由系统自动分配,无法由用户手工进行指定。
Oracle数据库和ASM实例可以通过HAIP来实现私网通讯的高可用性和负载均衡。私网的流量会在这些私网网卡上实现负载均衡,如果某个网卡出现了故障,它上面的HAIP会自动切换到别的可用的私网网卡上,从而不影响私网的通讯。Windows平台目前不支持HAIP技术。
在有些客户环境下,私网是通过VLAN划出来的,而出于网络管理要求,VLAN的IP地址与网卡必须是绑定的,私网IP也必须是固定的IP地址(虽然按Oracle RAC的安装要求,私网应该是独立隔离的网络),这时HAIP会无法分配,导致依赖它的ASM资源无法启动。HAIP存在不少Bug,若不幸碰到,则可以将HAIP功能禁用掉。如果用户使用的是操作系统级别的绑定或者没有使用私网的绑定,那么可以通过在RDBMS和ASM的参数文件中设置CLUSTER_INTECONNECTS指定私网地址将HAIP覆盖(如果有多个私网地址,请用英文冒号分隔)。虽然说HAIP本身依然存在,但是ASM实例和RDBMS实例以后就不会使用HAIP。
转载,原文链接:https://www.cnblogs.com/muzisanshi/p/12169588.html
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)