在ORACLE 11gR2中,安装RAC发生了显著变化。在10g以及11gR1的时代,安装RAC的步骤是先安装CRS,再安装DB,而到了11gR2的时代,crs与asm被集成在一起,合称为GRID,必须先安装GRID后,才能继续安装DB,否则,你就跟11gR2的RAC无缘了,呵呵。下面我们说一下ORACLE 11g R2  RAC的网络规划,从ORACLE 11.2开始,对网络IP地址有特殊要求,增加SCAN IP,所以从11.2开始至少需要4种IP地址。

假设一个服务器上有4块网卡: eth0,eth1,eth2,eth3. 可以将eth0 和 eth2 绑定成 bond0。作为RAC的public-ip, 提供外部通信。 然后将eth1和eth3  绑定成bond1,作为RAC的private-ip,提供内部心跳通信。 服务器上的HBA卡通过光纤交换机与后端存储通信。

我们看一下/etc/hosts文件里的内容 10.18.12.140            S1P32         # RAC1 Public 10.18.12.142            S1P32-vip      # RAC1 VIP 22.22.22.140            S1P32-priv     # RAC1 Private

10.18.12.141            S1P33         # RAC2 Public 10.18.12.143            S1P33-vip      # RAC2 VIP 22.22.22.141            S1P33-priv     #RAC2 Private

10.18.12.144            catdb-scan       # RAC SCAN

1、 我们先说一下PUBLIC和VIP Oracle RAC中每个节点都有一个虚拟IP,简称VIP, 与公网PUBLIC  IP在同一个网段。vip 附属在public网口接口。 VIP和PUBLIC IP最主要的不同之处在于:VIP是浮动的,而PUBLIC IP是固定的。在所有节点都正常运行时,每个节点的VIP会被分配到public NIC上;在linux下ifconfig查看,public网卡上是2个IP地址;如果一个节点宕机,这个节点的VIP会被转移到还在运行的节点上。也就是幸存的节点的public NIC这个网卡上,会有3个IP地址。

从图上看PUBLIC IP地址是一个双网卡绑定的公有地址,外部用户通过交换机S1来进行访问。

2、 再看RAC中的 Private RAC中的 Private私有IP用于心跳同步,这个对于用户层面,可以直接忽略。简单理解,这个Ip用来保证两台服务器同步数据用的,属于RAC内部之间通信。priv 与public 不应同属一个接口。 另外一个大家疑问的问题:做RAC时,用于两个node间互连的网卡是否可以用交叉线连接? Metalink上的RAC文档是推荐使用交换机作为内部网卡的连接,而不使用交叉线,原因是避免因为对连节点关闭或重启而导致网卡检查到链接故障状态而删除绑定的协议。导致高速缓存合并网络将会变为不可用。

从图上看,两个节点间的内部通信通过交换机S2来进行交互。

3、 RAC中的SCAN  IP 在11gR2中,SCAN  IP是作为一个新增IP出现的, scan ip其实是oracle在客户端与数据库之间,新加的一个连接层,当有客户端访问时,连接到 SCAN IP LISTENER, 而SCAN IP LISTENER接收到连接请求时,会根据 LBA 算法将该客户端的连接请求,转发给对应的instance上的VIP LISTENER,从而完成了整个客户端与服务器的连接过程。简化如下: client -> scan listener -> local listener -> local instance 也可以把scan理解为一个虚拟主机名,它对应的是整个RAC集群。客户端主机只需通过这个scan name即可访问数据库集群的任意节点。当然访问的节点是随机的,oracle强烈建议通过DNS Server的round robin模式配置解析SCAN,实现负载均衡(即轮换连接SCAN对应的IP地址)。这有点类似通过vip和listener loadbalance配置实现负载均衡的原理。

Oracle RAC本身比较复杂,在安装和管理中可能会遇到各种问题,涉及到OS、RDBMS、Cluster软件和网络、主机、存储等硬件,为了避免不必要的问题发生,在安装之前进行清晰的网络规划对于整个架构是非常重要的,愿与大家共同交流学习。

ORACLE 11GR2 RAC的网络规划解析的更多相关文章

  1. Oracle 11gR2 RAC 新特性说明

    最近接触了一下Oracle 11g R2 的RAC,发现变化很大. 所以在自己动手做实验之前还是先研究下它的新特性比较好. 一.    官网介绍 先看一下Oracle 的官网文档里对RAC 新特性的一 ...

  2. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作

    一.实施前期准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规范分配 二.安装前期准备工作 2.1 各节点系统时间校对 2.2 各节点关闭防火墙和 ...

  3. Linux平台 Oracle 11gR2 RAC安装Part2:GI安装

    三.GI(Grid Infrastructure)安装 3.1 解压GI的安装包 3.2 安装配置Xmanager软件 3.3 共享存储LUN的赋权 3.4 使用Xmanager图形化界面安装GI 3 ...

  4. Linux平台 Oracle 11gR2 RAC安装Part3:DB安装

    四.DB(Database)安装 4.1 解压DB的安装包 4.2 DB软件安装 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 11 ...

  5. 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

    测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...

  6. Oracle 11gR2 RAC 安装配置

    1. 简介   Oracle RAC,全称real application clusters,译为"实时应用集群", 是Oracle新版数据库中采用的一项新技术,是高可用性的一种, ...

  7. oracle 11gR2 RAC安装手册

    --oracle 11gR2 RAC安装手册 -----------------------------2013/10/29 参考三思笔记 http://files.cnblogs.com/jackh ...

  8. ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

    ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [  http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...

  9. 一步一步搭建 oracle 11gR2 rac + dg 之前传 (一)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg  之前传 (一) 转自 一步一步搭建 oracle 11gR2 rac + dg ...

随机推荐

  1. angularjs1-2,作用域、代码压缩

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. ROS-Rviz-turtlebot3仿真信息查看

    前言:Rviz是ROS自带的一种3D可视化工具. 一.安装turtlebot3功能包 1.1 安装依赖包 sudo apt-get install ros-kinetic-joy ros-kineti ...

  3. ML学习笔记- 神经网络

    神经网络 有的模型可以有多种算法.而有的算法可能可用于多种模型.在神经网络中,对外部环境提供的模式样本进行学习训练,并能存储这种模式,则称为感知器;对外部环境有适应能力,能自动提取外部环境变化特征,则 ...

  4. java代码实现python2中aes加密经历

    背景: 因项目需要,需要将一个python2编写的aes加密方式改为java实现. 1.源python2实现 from Crypto.Cipher import AES from binascii i ...

  5. Memcache相关面试题

    1)memcached的cache机制是怎样的? 懒惰算法 +最近最少使用原则 2)memcached如何实现冗余机制? 冗余:就是有好多好多不经常使用的. 可以不用实现冗余机制,如果非要实现.那就搞 ...

  6. 弹出ifame页面(jquery.reveal.js)

    <body> <a data-reveal-id="myModalDailyModify" data-animation="fade" tit ...

  7. js判断传入时间和当前时间大小

    //判断时间是否过期 function judgeTime(time){ var strtime = time.replace("/-/g", "/");//时 ...

  8. IntelliJ Idea下Go项目开启Debug调试

    1.新建Go项目,创建入口go文件(Test1.go),随便写点啥,比如: package main import "fmt" func main(){ fmt.Println(& ...

  9. 记录sql执行顺序

    SQL 语句执行顺序为: FROM WHERE GROUP BY HAVING SELECT DISTINCT UNION ORDER BY 关于 SQL 语句的执行顺序,有三个值得我们注意的地方: ...

  10. Run-time type information--RTTI

    In computer programming, run-time type information or run-time type identification (RTTI)[1] refers ...