Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个主机vip的一个连接串,如果cluster增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个tnsnames.ora。

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

scan只是一个名字,这个名字在DNS上解析成三个IP地址(VIP也是一个名字,也要配置一个ip地址阿)

无论cluster有多大(两个节点或者20个节点),都只有三个scan vip,在随机的节点上启动(如果是两个节点,可能三个vip在一个节点,也可能是1+2)

scan主要是简化客户端连接,你如果有20个节点,客户端连接的时候,是不是需要配置20个vip,如果用scan,只需要一个scan name就行了,剩下的事情,scan帮你做了。

至于为什么需要在dns里注册三个,主要是为了尽量提高可用性。
当节点数大于3时,最多也只会有3个SCAN listener,也就是说有的节点上没有scan listener.
如果使用/etc/hosts文件解析scan ip,因为不能做轮训的负载均衡,所以这时候scan ip就只能有一个了。

例如:

oracle 客户端如何连接到ORACLE 11GR2  带有DNS SCAN IP 的数据库服务器

[grid@rac2 ~]$ srvctl config scan
SCAN name: racnode-cluster-scan.racnode.com, Network: 1/192.168.3.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /racnode-cluster-scan.racnode.com/192.168.3.231
SCAN VIP name: scan2, IP: /racnode-cluster-scan.racnode.com/192.168.3.233
SCAN VIP name: scan3, IP: /racnode-cluster-scan.racnode.com/192.168.3.232

客户端TNSNAMES.ORA配置

RACDB =
  (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = racnode-cluster-scan.racnode.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = racdb){
    )  )

TNSPING 测试

客户端网络配置指向DNS服务器地址 192.168.3.32

C:\Documents and Settings\Administrator>tnsping racdb

TNS Ping Utility for 32-bit Windows: Version 11.1.0.7.0 - Production on 20-7月 -2010 18:53:50

Copyright (c) 1997, 2008, Oracle.  All rights reserved.

已使用的参数文件:
D:\app\Administrator\product\11.1.0\db_1\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = racnode-cluster-scan.racnode.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racdb)))
OK (80 毫秒)

客户端连接

C:\Documents and Settings\Administrator>sqlplussystem/abcdefg@racdb

SQL*Plus: Release 11.1.0.7.0 - Production on 星期二 7月 20 18:46:15 2010

Copyright (c) 1982, 2008, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management
OLAP,
Data Mining and Real Application Testing options

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
racdb2

SQL> exit

scan与vip的区别

这种方式看起来挺好,但是,如果对于大型局域网,客户端有成百上千个,而且分布在各个地方,原本简单的事就不简单了。scan ip就是针对这一问题出现的,它是在服务器端和客户端之间建立一层虚拟访问层,客户端的tnsnames中只有scan ip的侦听信息,即客户端直接访问scan ip而不直接访问真实的服务器ip。而scan ip是浮动的,它和节点本身的vip的区别就在于,vip的监听程序是跟instance绑定的,设置vip的作用是,当节点宕机之后,vip会自动的跳到正常节点上,但是vip对应的监听程序并不会跳转,本来,如果不使用vip的话,原本连接到宕机节点上的程序就会得不到服务器回应,然后等待连接超时的时候走完,客户端再重试,重试一定次数仍然失败才会转到其他节点上,这个过程就相当耗时了。若果使用vip的话,节点宕机之后vip跳到正常节点上,原本访问宕机节点的程序请求就发送到了vip跳转的节点,该正常节点收到连接请求后直接给该端点返回错误信息,告知它原本访问的节点已经坏掉了,这是客户端就会使用tns中的其他地址。这个时间相对于不适用vip的时间要小很多。

而scan ip机制是ip跟对应的监听程序一起浮动,如果a节点宕机,则原本停留在该节点的scan ip和监听程序会一起跳转到其他可用节点上。因此对于客户端而言,就不需要更改原本的配置信息,只需要一直访问scan ip就可以正常使用数据库,至于scan ip跟真实的节点的对应关系,则是scan ip这层要关心和实现的

转自

Oracle 11G R2 RAC中的scan ip 的用途和基本原理-aaron8219-ChinaUnix博客
http://blog.chinaunix.net/uid-24612962-id-3847628.html

对scan ip的理解 - CSDN博客
http://blog.csdn.net/jx_jy/article/details/11889901

Oracle RAC的VIP和SCAN IP - Virson Ma - 博客园
http://www.cnblogs.com/mawanglin2008/articles/3472395.html

转载于:https://www.cnblogs.com/paul8339/p/7807886.html

Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】相关推荐

  1. oracle 11g r2 rac中节点时间不同步,Oracle11gR2安装RAC错误之--时钟不同步

    系统环境: 操作系统:RedHat EL5 Cluster: Oracle GI(Grid Infrastructure) Oracle: Oracle 11.2.0.1.0 如图所示:RAC 系统架 ...

  2. oracle 11g r2 rac中节点时间不同步,Oracle 11gR2 安装RAC错误之--时钟不同步

    系统环境: 操作系统:RedHat EL5 Cluster: Oracle GI(Grid Infrastructure) Oracle: Oracle 11.2.0.1.0 如图所示:RAC 系统架 ...

  3. oracle 11g r2 rac到单实例的dg

    oracle 11g r2 rac到单实例的dg 1 主备环境说明 rac环境--primary CentOS release 6.5 (Final) hostname rac1 rac2 ip 10 ...

  4. Oracle 11g R2+RAC+ASM+redhat安装详解1

    Oracle RAC是Oracle Real Application Cluster的简写,官方中文文档一般翻译为"真正应用集群",它一般有两台或者两台以上同构计算机及共享存储设备 ...

  5. Oracle 11G R2 RAC 启动报错:ORA-01078 ORA-01565 ORA-17503 ORA-12547 处理方法

    Oracle 11G R2 RAC 启动报错:ORA-01078 ORA-01565 ORA-17503 ORA-12547 处理方法 前几天搭建的RAC测试环境:RedHat 6.8   grid ...

  6. Oracle 11g R2 RAC Hands on Training RAC 性能优化

    教程网址:  Oracle中国公司作品:Oracle 11g R2 RAC Hands on Training - 1 在线播放:http://www.boobooke.com/v/bbk3464 O ...

  7. Oracle 11g R2 RAC 高可用连接特性

    转自-阿里巴巴许春值 1.scan概念 什么叫 SCAN,SCAN (Single Client Access Name) 是 Oracle 从11g R2 开始推出的,客户端可以通过 SCAN 特性 ...

  8. ORACLE 11g R2 RAC群集堆栈的关闭过程分析

    下面的操作是一套基于Redhat 5.4 上面安装的 oracle 11g R2 11.2.0.3  rac来执行的. 通过观察命令的输出信息,我们可以分析出,oracle grid堆栈的关闭过程. ...

  9. oracle 11g r2 Rac install

    查看操作系统版本: [root@rac1 ~]# cat /etc/issue Enterprise Linux Enterprise Linux AS release 4 (October Upda ...

最新文章

  1. AI芯片大战已然打响,国内外巨头抢占万亿智能家居市场
  2. [转载]web集群时利用memcache来同步session
  3. echarts无数据时显示无数据_钣金无腻子数据还原
  4. MyBatis多对多关联查询示例——MyBatis学习笔记之十八
  5. AngularJS基于MVC的复杂操作案例
  6. 第一个Spark程序
  7. union all会影响性能吗_哪些因素会影响悬臂式掘进机的性能?
  8. Spring Spring MVC Hibernate 整合备忘
  9. .Net Email操作类
  10. 【知识图谱系列】基于生成式的知识图谱预训练模型GPT-GNN
  11. 零基础如何入门数据分析师?
  12. 53所高校研究生补贴政策一览表!
  13. 【php导出excel,大量导出,文本格式】
  14. [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
  15. mysql 时间语句,mysql语句大全_mysql时间查询常用语句大全
  16. 深入RxJava2 源码解析(二)
  17. 树莓派蓝牙ble gattlib c语言,树莓派构建智能家居控制系统 篇三:花花草草智能监测仪接入树莓派Domoticz...
  18. 柴静调查:穹顶之下_调查:HTML5数据列表
  19. 系统进程启动流程分析(一)
  20. Kyan网络监控设备账号密码泄露漏洞

热门文章

  1. oracle客户端下载 win8.1,WINDOWS8.1安装ORACLE客户端及配置
  2. php如何进修,PHP进修材料汇总华文_PHP教程
  3. 炒股Java_基于java计算买卖股票的最佳时机
  4. 【以太坊】私有链和测试网的区别
  5. python【蓝桥杯vip练习题库】ADV-233 队列操作
  6. Brilliant Programmers Show
  7. db2联邦数据库 linux,DB2创建联邦数据库
  8. 在计算机上创建一个本地用户账户,在工作组中,默认时每台Windows计算机的( )能够在本地计算机的SAM数据库中创建并管理本地用户账户。...
  9. postgresql根据字符分割数据为多列
  10. 5G时代下的网络营销对移动端网站建设形成怎样的冲击?