11g rac配置scan ip

如果是从10g转战11g rac就会发现很多不同之处,其中一个比较大的改变就是在11g中有了一个新特性scan,其实这是一个简称,完整的名称为:SCAN(Single Client Access Name),但是单纯根据简称理解为scan似乎也能说得通。
在10g中我们一般是这么配置tns的。
racdb=

(DESCRIPTION =

  (ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.101)(PORT= 1521))

  (ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.201)(PORT= 1521))

  (LOAD_BALANCE = yes)

  (FAILOVER = ON)

   (CONNECT_DATA =

    (SERVER= DEDICATED)

     (SERVICE_NAME = racdb)

     (FAILOVER_MODE =

       (TYPE= SELECT)

       (METHOD= BASIC)

       (RETRIES = 30)

       (DELAY = 5))))

但是到了11g中,无须我们这样配置,查看tnsnames.ora里面就只有短短几行内容。

-bash-4.1$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u04/app/11.2.0/db/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

RACDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = RACDB)
    )
  )

整个配置一下子没有了原来的那种高达上的感觉,一下感觉和单实例的数据库配置没有什么两样。
这个时候就会在数据库层面和客户端层面之间添加了一个虚拟的转换层,即我们所说的scan ip和scan ip listener
这个时候如果你去查看listener会发现多了一个scan相关的listener
-bash-4.1$ ps -ef|grep tns
root        13     2  0 07:02 ?        00:00:00 [netns]
grid      3086     1  0 07:17 ?        00:00:00 /u04/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid      3090     1  0 07:17 ?        00:00:00 /u04/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
grid      3624  2377  0 07:32 pts/0    00:00:00 grep tns这个时候c客户端连接数据库的过程就会是下面的方式
客户端 -> scan listener -> local listener -> 对应的数据库实例
用图形显示就是下面的形式

这个解析的过程是一个动态处理的过程,比如我们也可以在这个基础上进行扩展,我们希望配备多个scan ip,也是支持的。

首先需要查看scan的状态
-bash-4.1$ lsnrctl status rac-scan

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-AUG-2015 07:32:26

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.100)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                16-AUG-2015 07:17:10
Uptime                    0 days 0 hr. 15 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u04/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u04/app/11.2.0/grid/log/diag/tnslsnr/rac1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.100)(PORT=1521)))
Services Summary...
Service "RACDB" has 2 instance(s).
  Instance "RACDB1", status READY, has 1 handler(s) for this service...
  Instance "RACDB2", status READY, has 1 handler(s) for this service...
Service "RACDBXDB" has 2 instance(s).
  Instance "RACDB1", status READY, has 1 handler(s) for this service...
  Instance "RACDB2", status READY, has 1 handler(s) for this service...
The command completed successfully

如果另外一个节点上没有对应的scan进程,会有一些区别。
-bash-4.1$ lsnrctl status rac-scan

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-AUG-2015 07:32:10

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.100)(PORT=1521)))
TNS-01189: The listener could not authenticate the user
我们来配置一下scan ip,使用srvctl config scan的方式可以得到当前的scan配置信息,可以了解到scan目前的一些状态,目前漂移在哪个节点上。

node1:
-bash-4.1$ srvctl config scan
SCAN name: rac-scan, Network: 1/192.168.3.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rac-scan/192.168.3.100

-bash-4.1$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac1

然后我们把scan_listener停掉,然后查看状态
-bash-4.1$ srvctl stop scan_listener
-bash-4.1$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is not running
接下来我们就需要在/etc/hosts里面配置多个scan ip,比如我添加了192.168.3.110喝192.168.3.120这两个ip
/etc/hosts
192.168.3.100            rac-scan
192.168.3.110            rac-scan
192.168.3.120            rac-scan

然后使用srvctl modify的方式使其生效。
-bash-4.1$ srvctl modify scan -n rac-scan
PRCS-1034 : Failed to modify Single Client Access Name rac-scan
PRCR-1071 : Failed to register or update resource type ora.scan_vip.type
CRS-0245:  User doesn't have enough privilege to perform the operation
这个时候其实还是需要root权限才能操作的,切换一下使用root
-bash-4.1$ which srvctl
/u04/app/11.2.0/db/product/11.2.0/dbhome_1/bin/srvctl
-bash-4.1$ su - root
Password:
[root@rac1 ~]# /u04/app/11.2.0/db/product/11.2.0/dbhome_1/bin/srvctl   modify scan -n rac-scan
****ORACLE_HOME environment variable is not set.
    ORACLE_HOME should be set to the main
    directory that contains Oracle products.
    Set and export ORACLE_HOME, then re-run.
不过这个时候也不是一帆风顺,还是需要根据ORACLE_HOME来做修改,而且还是需要export的方式才可以。

[root@rac1 ~]# ORACLE_HOME=/u04/app/11.2.0/db/product/11.2.0/dbhome_1
[root@rac1 ~]#  /u04/app/11.2.0/db/product/11.2.0/dbhome_1/bin/srvctl   modify scan -n rac-scan
****ORACLE_HOME environment variable is not set.
    ORACLE_HOME should be set to the main
    directory that contains Oracle products.
    Set and export ORACLE_HOME, then re-run.
[root@rac1 ~]# export ORACLE_HOME=/u04/app/11.2.0/db/product/11.2.0/dbhome_1
[root@rac1 ~]# /u04/app/11.2.0/db/product/11.2.0/dbhome_1/bin/srvctl   modify scan -n rac-scan

[root@rac1 ~]# exit
logout
修改完成,我们查看scan ip的状态,就会发现多了另外两个ip
-bash-4.1$ srvctl config scan
SCAN name: rac-scan, Network: 1/192.168.3.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rac-scan/192.168.3.100
SCAN VIP name: scan2, IP: /rac-scan/192.168.3.110
SCAN VIP name: scan3, IP: /rac-scan/192.168.3.120
然后尝试启动scan_listener即可。
-bash-4.1$ srvctl start scan_listener

-bash-4.1$ srvctl start scan
PRCC-1014 : scan1 was already running
PRCR-1004 : Resource ora.scan1.vip is already running
PRCR-1079 : Failed to start resource ora.scan1.vip
CRS-5702: Resource 'ora.scan1.vip' is already running on 'rac2'
当然启动之后我们也需要验证,还是使用crs_stat来验证
-bash-4.1$ crs_stat -t|grep scan
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac2       
ora.scan2.vip  ora....ip.type ONLINE    ONLINE    rac1       
ora.scan3.vip  ora....ip.type ONLINE    ONLINE    rac1
scan ip的配置就完成了,应该比预想的要简单一些吧。

时间: 2024-10-26 09:39:06

11g rac配置scan ip的相关文章

Oracle11gR2 RAC 使用scan IP无法连接(ORA-12545)

Oracle11GR2 RAC使用scan IP无法连接到数据库,报错 ORA-12545: 因目标主机或对象不存在, 连接失败 现象: 在windows客户端sqlplus工具使用scan的IP无法连接,报错如下: C:Windowssystem32> sqlplus song/123456@10.10.23.3:11521/orcl SQL*Plus: Release 11.2.0.1.0 Production on Thu May 17 12:35:28 2012 Copyright (c

oracle数据库修改11.2 RAC 的 SCAN IP的例子

在某些情况下,由于是C/S架构,从以前的单机系统迁移到现在11.2的rac中,如果修改客户端ip地址工作量太大,而且也不现实,一般建议直接修改scan ip地址和以前一样,从而实现业务直接访问scan ip实现应用不用一个个单独配置.这里通过简单演示,实现修改scan ip的过程(网段不变),主要是把scan名字为scan-xff的ip地址从192.168.137.245修改为192.168.137.248 查看当前scan ip信息 [root-www.111cn.net@xff1 ~]# p

Oracle11gR2 RAC 使用scan IP无法连接数据库(ORA-12545)问题解决

环境:[grid@rac1 ~]$ cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1       localhost.localdomain localhost::1        localhost6.localdomain6 localhost6# Public192.168.2.101   

Oracle 11g RAC SCAN ip的原理及配置

SCAN概念:     先介绍一下什么叫SCAN,SCAN(Single Client Access Name)是Oracle从11g R2开始推出的,客户端可以通过SCAN特性负载均衡地连接到RAC数据库.所以在Oracle 11gR2 中,引入了SCAN(Single ClientAccess Name)的特性.SCAN是一个域名,可以解析至少1个IP,最多解析3个SCAN IP,客户端可以通过这个SCAN 名字来访问数据库,另外SCAN ip必须与public ip和VIP在一个子网. S

【RAC】如何修改RAC SCAN IP

   在11gR2中,引入了SCAN(Single Client Access Name)的特性,该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的scan ip以及scan ip listener,在客户端仅需要配置scan ip的tns信息,通过scan ip listener,连接后台集群数据库.这样,不论集群数据库是否有添加或者删除节点的操作,均不会对client产生影响.当有客户端应用程序使用SCAN ip访问数据库时,scan listener会将连接转发到l

解决oracle客户端可以连接11g rac vip,但是不能连接scan ip问题

local不用动,remote_listern按我说的设置一下,应该就可以了! # Public Network - (eth0) 10.4.56.39    syquadb1 10.4.56.40    syquadb2 # Public Virtual IP (VIP) addresses - (eth1) 10.4.56.41    syquadb1-vip 10.4.56.42    syquadb2-vip # Private Interconnect - (bond0:eth2 et

安装Oracle 11g RAC R2时的Linux DNS配置

Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集群中运行的 Oracle 数据库.如果您在集群中添加或删除节点,使用 SCAN 的客户端无需更改自己的 TNS 配置.无论集群包含哪些节点,SCAN 资源及其关联的 IP 地址提供了一个稳定的名称供客户端进行连接使用.在Oracle 11g grid 安装时即要求为该特性配置DNS解析方式或GNS解

安装Oracle 11g RAC R2 之Linux DNS 配置

    Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集群中运行的 Oracle 数据库.如果您在集群中添加或删除节点,使用 SCAN 的客户端无需更改自己的 TNS 配置.无论集群包含哪些节点,SCAN 资源及其关联的 IP 地址提供了一个稳定的名称供客户端进行连接使用.在Oracle 11g grid 安装时即要求为该特性配置DNS解析方式或

Oracle 11g RAC环境下Private IP修改方法及异常处理

Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 # olsnodes -s -n –i host1 1 host1-vip Active host2 2 host2-vip Active 2. 修改Private IP配置信息 如果之前只有一个私有网卡,则直接删除时会报错,如:PRIF-31: Failed to delete the speci