在介绍SCAN之前, 先简单的回顾一下ORACLE 关于IP 地址的命名用, 在9I RAC时, ORACLE没有自己的CLUSTERWARE, 主要依靠第三方的集群软件(如HACMP等), 客户端主要是通过PUBLIC IP来访问数据库, 当某一个节点已经出现故障无法对外提供服务时, 如果客户端继续请求连接这个节点的PUBLIC IP, 那么连接请求会长时间没有返回, 最后要等到TCP-IP TIMEOUT才会返回一个超时信息, 这对于实时性要求较高的应用来说是致命问题, 很多DBA都经历过这样的问题, 从技术层面上来说, 这是一个网络层的问题, 任何应用都要等待网络层返回超时信息。 为了解决这个问题, 从ORACLE 10G RAC开始, 引入了一个新的功能叫VIP, 这个功能类似于第三方集群软件的浮动IP, 简单的说就是当PUBLIC 网卡或者节点出现问题, VIP可以快速的FAILOVER到另外的节点, 如果客户端的连接请求被分配到这个VIP时, 客户端连接请求马上就会遇到错误, 因此会快速的跳过这个有问题的VIP, 而重新分配另一个VIP, 最终连接到数据库, 这些对于应用来说是透明的, 基本感觉不到连接的延时。
 
二。 SCAN
       从11GR2 GRID INFRASTRUCTURE开始, 引入了一个新功能叫SCAN(SINGLE CLIENT ACCESS NAME), SCAN是一个域名, 可以解析到少一个IP, 最多解析三个SCAN IP, 客户端可以通过这个SCAN名字来访问数据库,SCAN的好处就是当集群中新增加或者删除节点, 不需要额外维护客户端, 在11GR2上, 客户端仍然可以继续使用原有的VIP, 但是ORCLE 推荐使用SCAN。
       SCAN IP 必须与PUBLIC IP和VIP在一个子网, 同时ORACLE 推荐使用DNS或者GNS来解析SCAN, 如果没有使用DNS或者GNS的放在, 可以使用HOSTS文件, 但是这个办法不是ORACLE 推荐的, 因为这个方法只能定义一个SCAN IP。
       GRID集群中有2类资源是与SCAN有关的, 一类是SCAN IP, 另一类是SCAN LISTENER, SCAN IP和SCAN LISTENER是成对出现的, 也就是说如果有3个SCAN IP, 就会同时有3个SCAN LISTENER。 SCAN IP 就是DNS解析的IP 地址, SCAN LISTENER的作用是接受客户端的连接请求。
        数据库的初始化参数REMOTE_LISTENER默认被设置为SCAN LISTENER, 目的是为了让SCAN LISTENER可以监听所有的关例, 记录所有实例的压力, 以便于按照负载均衡的方式来转发客户端的请求。

  1. SQL> show parameter remote
  2. NAME                                 TYPE        VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. remote_dependencies_mode             string      TIMESTAMP
  5. remote_listener                      string      racscan:1521
  6. remote_login_passwordfile            string      EXCLUSIVE
  7. remote_os_authent                    boolean     FALSE
  8. remote_os_roles                      boolean     FALSE
  9. result_cache_remote_expiration       integer     0

三, 客户端访问方式
       客户端发出连接数据库的请求, DNS将SCAN解析出对应的3个SCAN IP并返回给客户端, 客户端随机的选择其中一个SCAN IP 地址, 然后客户端通过这个SCAN IP访问对应的节点, 当对应节点的SCAN LISTENER接受到请求后, SCAN LISTENER会选择压力最小的数据库实例, 然后压力最小的数据库实例对应的LOCAL LISTENER的地址将返回给客户端, 最终这个LOCAL LISTENER为客户端的请求建立与数据库的连接。

四, 客户端连接配置

  1. ORA11G =
  2. (DESCRIPTION =
  3. (ADDRESS = (PROTOCOL = TCP)(HOST = racscan)(PORT = 1521))
  4. (CONNECT_DATA =
  5. (SERVER = DEDICATED)
  6. (SERVICE_NAME = ora11g)
  7. )
  8. )

五, SCAN的常用命令
1. 查看SCAN配置信息

  1. [grid@rac1 ~]$ srvctl config scan
  2. SCAN name: racscan, Network: 1/192.168.3.0/255.255.255.0/eth0
  3. SCAN VIP name: scan1, IP: /racscan/192.168.3.198

2. 查看SCAN LISTENER配置信息

  1. [grid@rac1 ~]$ srvctl config scan_listener
  2. SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521

3. 查看SCAN的状态

  1. [grid@rac1 ~]$ srvctl status scan
  2. SCAN VIP scan1 is enabled
  3. SCAN VIP scan1 is running on node rac1

4. 查看SCAN LISTENER的状态

    1. [grid@rac1 ~]$ srvctl status scan_listener
    2. SCAN Listener LISTENER_SCAN1 is enabled
    3. SCAN listener LISTENER_SCAN1 is running on node rac1

RAC SCAN的更多相关文章

  1. [转]Oracle 11g RAC SCAN ip的原理及配置

    原文地址:http://tiany.blog.51cto.com/513694/1421917/ Oracle 11g RAC SCAN ip的原理及配置   Oracle 11g RAC网格即插即用 ...

  2. oracle rac scan ip 用途 原理

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  3. [转]Oracle 11g R2 RAC高可用连接特性 – SCAN详解

    原文地址:http://czmmiao.iteye.com/blog/2124373   昨天帮朋友解决11g RAC SCAN问题,当时为这朋友简单解答了一些SCAN特性相关的问题,但我知道这仅仅是 ...

  4. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

  5. Oracle 11g R2(11.2.0.4) RAC 数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件

    Oracle 11g R2(11.2.0.1) RAC  数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件 oracle 11g R2(11.2.0.4) rac--scan ...

  6. ORACLE 11GR2 RAC的网络规划解析

    在ORACLE 11gR2中,安装RAC发生了显著变化.在10g以及11gR1的时代,安装RAC的步骤是先安装CRS,再安装DB,而到了11gR2的时代,crs与asm被集成在一起,合称为GRID,必 ...

  7. 【故障•监听】TNS-12518、TNS-00517和 Linux Error:32:Broken pipe

    [故障|监听]TNS-12518.TNS-00517和 Linux Error:32:Broken pipe 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱 ...

  8. Troubleshooting ORA-12547 TNS: Lost Contact (Doc ID 555565.1)

    Troubleshooting ORA-12547 TNS: Lost Contact (Doc ID 555565.1) This error can occur in following scen ...

  9. oracle RAC的VIP和scan

    我们都知道Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网IP在同一个网段. 没有VIP时,Oracle客户端是靠"TCP/IP协议栈超时"来判断服务器故障.而T ...

随机推荐

  1. (CodeForces 558C) CodeForces 558C

    题目链接:http://codeforces.com/problemset/problem/558/C 题意:给出n个数,让你通过下面两种操作,把它们转换为同一个数.求最少的操作数. 1.ai = a ...

  2. [cocos2d-x 2.0.4][iOS7]图片加载错误

    本篇文章由:http://www.sollyu.com/cocos2d-x-2-0-4-ios7-image-loading-errors/ 说明 错误提示 <Error>: CGBitm ...

  3. LevelDb原理剖析

    在说LevelDb之前,先认识两位大牛,Jeff Dean和Sanjay Ghemawat,这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二. Jeff Dean其人: ...

  4. C++学习之路,漫长而遥远

    一.C/C++语言 如果你的基础很差, 建议不要一开始就学C++语言,从C开始学起,对程序有个初步的认识,循序渐进.C语言的书嘛,先买一本 300 页以内的,把书中的每一个例子都通过键盘敲打进去到 V ...

  5. Struts2文件上传方式与上传失败解决方式

    首先将几个对象弄出来第一个 上传页面第二个 上传action第三个 startut2配置文件 我的文字描述不是很好,但是终归是自己写出来的,后来我在网上看到一篇关于文件上传描述的非常清楚的文章, 链接 ...

  6. 【安装操作系统】VMware 中安装 Redhat 5

    引言 已有一台 Windows XP 家用机,安装 Linux 虚拟机,一不小心就会走弯路,因此本文提供一些入门级的经验来帮助你躲开歧途. 欢迎来到 lovickie 的博客 http://www.c ...

  7. Qt-获取主机网络信息之QNetworkAddressEntry

    QNetworkAddressEntry类存储了一个网络接口所支持的一个IP地址,同时还有与之相关的子网掩码和广播地址. 每个网络接口可以包含0个或多个IP地址,这些IP地址可以分别关联一个子网掩码和 ...

  8. MySQL基础学习之数据查询

    一般查询 SELECT * FROM 表名 SELECT 属性名  FROM  表名 条件查询 SELECT 属性名 FROM 表名  WHERE 条件表达式 查询数据值1,数据值2的表单 SELEC ...

  9. log4j记录运行日志

    1.在工程中导入log4j-1.2.15.jar的jar包2.新建测试类 package control; import org.apache.log4j.Logger; import org.apa ...

  10. Sybase ASE无响应的又一个情况

    昨天下午,客户那边的系统管理员给我电话,说有套系统的SYBASE数据库最近有点怪,总是时不时莫名其妙地就忽然卡死,有可能一下子就自动恢复了,也有可能后面一直卡住,只好重启.根据客户反映的状况,初步判断 ...