• Oracle 11G R2 RAC中的scan ip 的用途和基本原理


    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 SettingsAdministrator>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:appAdministratorproduct11.1.0db_1 etworkadminsqlnet.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 SettingsAdministrator>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

  • 相关阅读:
    Linux文件与目录管理(一)
    Linux文件基本属性
    软工实践总结
    微软必应词典的调查与研究
    调研安卓开发环境的发展演变
    软件工程的预定目标
    学习进度第5周
    机械学习----KNN算法
    MyBatis:简介、第一个程序01(纯小白非常实用)
    解决数据库连接时区的问题
  • 原文地址:https://www.cnblogs.com/zwl715/p/3578758.html
Copyright © 2020-2023  润新知