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 的数据库服务器

[[email protected] ~]$ 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/[email protected]

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

时间: 2024-10-23 13:20:51

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

Oracle 11g R2 RAC安装规划

前言 使用虚拟机VMWARE安装Oracle 11g R2 RAC,需要模拟两个主机节点和一个共享存储,安装系统和创建虚拟存储文件这里不作介绍,可以自行百度方法,很简单. 一.主机规划 二.数据库规划 三.准备工作 3.1.HOSTS和主机名配置 #在所有节点添加主机名,重启生效: [[email protected] ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=node1 NTPSERVERARGS=iburst [[email

oracle 11g r2 rac ssh两节点互信对等配置Permission denied (publickey,gssapi-with-mic,password)

问题:安装oracle 11g r2 RAC grid 时,配置两节点ssh互信对等配置不成功,具体错误信息如下: ------------------------------------------------------------------------ Verifying SSH connectivity has been setup from rac1 to rac1 -----------------------------------------------------------

Oracle 11g R2 RAC RMAN备份脚本示例

一.将RAC切换成归档模式 1. 修改数据库的归档模式,通常在安装RAC的时候都会配置归档并且使用闪回区,已经配置过归档下面的方式可以略过. SQL> alter system set cluster_database=false scope=spfile sid='*'; 2. 关闭所有实例(两边都要shutdown) SQL> shutdown immediate 或直接关闭所有实例   $ srvctl stop database -d orcl 3. 在任意一个实例上将数据库启动到mo

Oracle 11g R2 RAC dbca新建实例报错

此oracle问题本人在论坛上作了提问http://bbs.51cto.com/thread-1167548-1.html,最后自己找到方法解决,以此博客再作记录. 环境:CentOS6.5 64位,Oracle 11g R2 11.2.0.1.0 现象:oracle rac生产环境中,已经有一个实例正常使用,有需求再建一实例. 新建实例过程中,最后步骤具体报错如下:    [Thread-829] [ 2015-09-09 11:29:42.007 CST ] [DatabaseImpl.cr

Oracle 11gR2 RAC中的SCAN IP

Oracle 11gR2 中,引入了SCAN(Single ClientAccess Name)的特性.SCAN是一个域名,可以解析至少1个IP,最多解析3个SCAN IP,客户端可以通过这个SCAN 名字来访问数据库,另外SCAN ip必须与public ip和VIP在一个子网. 在11gR2之前配置TNS连接串使用的都是VIP,如果RAC集群添加节点或VIP有变化,就需要对所有的客户端的TNS配置进行修改,这样很麻烦,引入SCAN后就省去了这些麻烦.启用SCAN 之后,会在数据库与客户端之间

ORACLE 11g r2   RAC 安装实施规划

安装RAC并不难,难就难在前期的实施规划上,根据用户需求采购了硬件之后,我们需求在实施之前做好详细的规划 ,这就包括主机规划.SAN交换机规划.存储柜规划.ORACLE数据库软件规划等,要将整个软硬件融为一体,充分考虑RAC系统的安全性,可靠性,可用性等因素,始终记住一个规划得好RAC系统才能充分发挥其优于单节点的优势,同时也为后期的运维管理提供方便.这篇博文主要是关于前期实施RAC的规划提供参考. 网络拓扑图 一.主机规划 系统配置 硬盘:6*300G  15krpm SAS 内存:128G内

Oracle 11g R2 RAC TAF 服务端配置

Oracle RACFailover 详解:http://www.51CTO提醒您,请勿滥发广告!/bbs/thread-31215-1-1.html How To Configure Server Side TransparentApplication Failover [ID 460982.1] 1.创建TAFService [[email protected] bin]$ ./srvctl add service -d orcl -s server_taf -r "orcl1,orcl2&

Oracle 11g R2 rac通过rman 恢复到单实例数据库

生产环境是2个节点的rac + dataguard(物理备库也是两个节点的rac),通过rman每天进行备份,现在需要定期对生产库进行恢复操作 恢复步骤如下: 1.      把生产库的备份拷贝到目标端 建立存放备份的目录修改目录属主属组 mkdir /oracle/backup chown oracle:oinstall /oracle/backup 2.      拷贝备份到目标端 scp -P 22 incremental_level*  [email protected]:/oracle

Oracle 11g R2 RAC删除一节点过程

实验场景: 两节点RAC,主机名是db1.db2,现在需要删除db2,本示例是在正常状态下删除. 1.  db1,db2节点检查CSS服务器是否正常,如下即为正常. [[email protected] ~]# su - grid    [[email protected] ~]$ olsnodes -t -s     db1     Active  Unpinned     db2     Active  Unpinned     [[email protected] ~]$ 如果pinned