zoukankan      html  css  js  c++  java
  • 11gR2 集群(CRS/GRID)新功能—— SCAN(Single Client Access Name)

    11gR2 集群(CRS/GRID)新功能—— SCAN(Single Client Access Name)

    回顾
    -------------------
    本文简单的介绍一下11gR2集群(CRS/GRID)新功能SCAN(Single Client Access Name),希望对于刚刚接触11gR2的朋友有一些帮助。

     

    在介绍SCAN之前,先简单的回顾一下oracle关于IP地址的使用,在9i RAC时,oracle没有自己的clusterware,主要依靠第三方的集群软件(如IBM HACMP等等),客户端主要是通过public IP来访问数据库(如果第三方集群软件提供服动IP的话,也可以通过这个服动IP来访问数据库),当某一个节点已经出现故障无法对外提供服务时,如果客户端继续请求连接这个节点的public IP,那么连接请求会长时间没有返回,最后要等到TCP-IP timeout (TCP-IP超时时间一般为10分钟,不同OS这个值不同)才会返回一个超时信息,这对于实时性要求较高的应用来说是致命的问题,很多DBA都经历过这样的问题,从技术层面上来说,这是一个网络层的问题,任何应用都要等待网络层返回超时信息。为了解决这个问题,从oracle 10g
    RAC开始,引入了一个新的功能叫VIP,这个功能类似于第三方集群软件的浮动IP,简单的说就是当public 网卡或者节点出现问题,VIP可以快速的failover到另外的节点,如果客户端的连接请求被分配到这个VIP时,客户端连接请求马上就会遇到错误,因此会快速的跳过这个‘有问题的’VIP,而重新分配另一个VIP(这个功能是客户端连接时的failover),最终连接到数据库,这些对于应用来说是透明的,基本感觉不到连接的延时。

    SCAN简介
    -------------------
    从11gR2 Grid Infrastructure (CRS/clusterware)开始,引入了一个新功能叫SCAN (Single Client Access Name),SCAN是一个域名,可以解析至少1个IP,最多解析3个SCAN IP,客户端可以通过这个SCAN 名字来访问数据库,SCAN的好处就是当集群中新增加了节点或者删除了节点,不需要额外维护客户端。在11gR2上,客户端仍然可以继续使用原有的 VIP,但是oracle推荐使用SCAN。

    SCAN ip必须与public ip和VIP在一个子网,同时oracle推荐使用DNS或者GNS(11gR2
    新功能)来解析SCAN,如果没有使用DNS或者GNS的话,可以使用hosts文件,但是这个办法不是oracle推荐的,因为这个方法只能定义一个 SCAN IP。

    GRID集群中有2类资源是与SCAN有关的,一类是SCAN IP,另一类是SCAN Listener,SCAN IP和SCAN Listener是成对出现的,也就是说如果有3个SCAN IP,就会同时有3个SCAN Listene。SCAN IP就是DNS解析的IP地址,SCAN Listener的作用是接受客户端的连接请求。查看SCAN IP信息和SCAN Listener信息的方法在下文介绍。

    数据库的初始化参数remote_listener默认被设置为SCAN Listener,目的是为了让SCAN Listener可以监听所有的实例,记录所有实例的压力,以便于按照负载均衡的方式来转发客户端的请求。

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

    客户端tnsnames.ora的配置
    -------------------------------------------
    RAC =
    (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster-scan)(PORT = 1521))
      (CONNECT_DATA =
         (SERVER = DEDICATED)
         (SERVICE_NAME = rac)
      ) )

    客户端的连接方式:
    $ sqlplsu <username>/<password>@RAC

    EZconnet的连接仍然适用于SCAN
    $ sqlplus <username>/<password>@rac-cluster-scan:1521/rac

    常用命令
    -----------------------
    1. 查看SCAN配置信息
    $ srvctl config scan
    SCAN name: rac-cluster-scan, Network: 1/192.168.1.0/255.255.255.0/
    SCAN VIP name: scan1, IP: /rac-cluster-scan/192.168.1.12
    SCAN VIP name: scan2, IP: /rac-cluster-scan/192.168.1.13
    SCAN VIP name: scan3, IP: /rac-cluster-scan/192.168.1.14

    2. 查看SCAN Listener配置信息
    $ srvctl config scan_listener
    SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
    SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521
    SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521

    3. 查看SCAN的状态
    $ srvctl status scan

    4. 查看SCAN listener的状态
    $ srvctl status scan_listener

    常用文档
    ------------------
    SCAN介绍
    www.oracle.com/technetwork/testcontent/scan-098460.html

    ORACLE SUPPORT网站上查看下面2篇文章,都是关于SCAN的介绍,希望能够帮助您解决关于SCAN的问题。
    11gR2 Grid Infrastructure Single Client Access Name (SCAN) Explained (Doc ID 887522.1)
    How to Setup SCAN Listener and Client for TAF and Load Balancing [Video] (Doc ID 1188736.1)

    同时推荐您学习oracle的在线文档,里面有很详细的介绍,包括新功能,CRS/RAC 安装过程和常用的管理命令,基本上可以解决我们平时遇到的大部分疑问。

    集群(GRID/CRS)的安装和管理文档:
    http://docs.oracle.com/cd/E11882_01/install.112/e22489/toc.htm
    http://docs.oracle.com/cd/E11882_01/rac.112/e16794/toc.htm

    RAC的安装和管理文档:
    http://docs.oracle.com/cd/E11882_01/install.112/e24660/toc.htm
    http://docs.oracle.com/cd/E11882_01/rac.112/e16795/toc.htm

  • 相关阅读:
    drf序列化组件之视图家族
    drf请求模块分析
    初识web API接口及Restful接口规范
    Vue与Django前后台分离跨域配置
    vue使用一些外部插件及样式的配置
    Linux(Ubuntu)下面SecureCRT 完全破解
    EDS 14.0 dtc:commmand not found
    sopcinfo路径改变,nios工程该怎么办?
    软件实现的施密特触发器
    一定要上的网站
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14548197.html
Copyright © 2011-2022 走看看