Oracle 版本:11.2.0.1.0

客户端:Windows Server 2003/PLSQL Developer

Oracle服务器端的ip设置如下:

##公网ip

192.168.135.201 WIN-2008SERVER1

192.168.135.202 WIN-2008SERVER2





##虚拟ip

192.168.135.211 WIN-2008SERVER1-vip

192.168.135.212 WIN-2008SERVER2-vip





##私网ip

10.168.135.201 WIN-2008SERVER1-pri

10.168.135.202 WIN-2008SERVER2-pri



##SCAN ip

192.168.135.220 scan

两个RAC实例的虚拟ip已经设置为ip地址而不是名称,如下:

客户端PLSQL Developer的tnsnames.ora设置如下:

ORCL = (DESCRIPTION =

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

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

    (LOAD_BALANCE = yes)

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

      (FAILOVER_MODE =

         (TYPE = select)

         (METHOD = basic)

         (RETRIES = 180)

         (DELAY = 5)

      )

    )

scan =

(DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )





192.168.135.200 =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

使用PLSQL Developer连接ORCL,没有任何问题。

客户端Windows的hosts文件没有修改之前,使用PLSQL Developer连接Oracle的SCAN ip 192.168.135.200,异常如下:

ORA-12541: TNS: no listener

连接Oracle的SCAN名称scan,异常如下:

ORA-12545: Connect failed because target host or object does not exist

网上有说升级Oracle版本就可以解决的,没有尝试过,不知道可否?

也有说将RAC实例的local_listener修改为虚拟ip就可以的,但是已经是这样了,不知为何?

最后,客户端Windows的hosts文件添加Oracle服务器端的虚拟ip和SCAN ip的设置,重启操作系统之后,使用PLSQL Developer连接Oracle的SCAN名称scan,连接成功!

扩展话题:如果SCAN名称直接设置为ip地址(不知Oracle是否支持?),客户端PLSQL Developer连接的host名称也就可以填写为ip地址了,这样看起来就和连单机Oracle实例很像了。

扩展阅读:

ORA-12541: TNS:no listener ( ERROR coming when one node of RAC database is off

http://www.dbasupport.com/forums/showthread.php?53938-ORA-12541-TNS-no-listener-(-ERROR-coming-when-one-node-of-RAC-database-is-off

java应用连接oracle 11g R2 rac (用scanip连接报错)

http://blog.csdn.net/weiwangsisoftstone/article/details/38535463

11gR2 clients connect to the database using SCANs

http://www.dbatoolz.com/t/11gr2-clients-connect-to-the-database-using-scans.html

scan-ip部分可以连接,部分连接不了

http://t.askmaclean.com/thread-4090-1-1.html

Oracle 11g RAC客户端使用SCAN IP无法连接问题的更多相关文章

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

    Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...

  2. Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

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

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

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

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

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

  5. 转载:细说oracle 11g rac 的ip地址

    本文转载自:细说oracle 11g rac 的ip地址 http://blog.sina.com.cn/s/blog_4fe6d4250102v5fa.html 以前搭建oracle rac的时候( ...

  6. oracle 11g RAC安装节点二执行结果错误CRS-5005: IP Address: 192.168.1.24 is already in use in the network

    [root@testdb11b ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInvento ...

  7. Oracle 11g RAC 修改各类IP地址

    Oracle 11g RAC 修改各类IP地址 首先,我们都知道Oracle 11g RAC中的IP主要有:Public IP.VIP.SCAN VIP.Private IP这几种. 一般这类改IP地 ...

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

    Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集 ...

  9. oracle 11g RAC 在Windows 7下安装

    oracle 11g RAC 在Windows 7下安装 完全要参考RAC11gR2OnWindows.pdf 难点总是在Grid Infrastructure 而安装Grid Infrastruct ...

随机推荐

  1. Linq学习之操作符

    一.环境搭建 下面将逐步搭建我们学习的环境,这个环境不仅仅是这次需要使用,以后的教程一样需要使用这个环境.所以请大家务必按照 搭建这里的环境否则会影响你后面的学习. 我们用到的几张表 通知消息表: 用 ...

  2. 使用 Aspose.Slide 获取PPT中的所有幻灯片的标题

    本文使用的是第三方类库 Aspose.Slide,如果你使用的是OpenXml可以看下面的链接,原理是相同的,这个文章里也有对Xml标签的详细解释. 如何:获取演示文稿中的所有幻灯片的标题 原理: 原 ...

  3. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现

    有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息.这个特性之前只在Windows上有实现,Linux/Mac上的实现最 ...

  4. 深入理解java虚拟机【Java虚拟机类生命周期】

    C/C++等纯编译语言从源码到最终执行一般要经历:编译.连接和运行三个阶段,连接是在编译期间完成,而java在编译期间仅仅是将源码编译为Java虚拟机可以识别的字节码Class类文件,Java虚拟机对 ...

  5. DDD基本概念

    一条箴言是:如果值对象是可共享的,那么它们应该是不可变的.值对象应该保持很小.很简单 极力推荐将值对象实现为不可变的.它们由一个构造器创建,并且在它们的生命周期内永远不会被修改.当你想要得到这个对象的 ...

  6. paip.快捷方式分组管理最佳实践ObjectDock

    paip.快捷方式分组管理最佳实践ObjectDock /////挑选:除了od,还有个Berokyo ,但是bk无crash..只能使用1月.. Jumplist_Launcher_v7.2_rep ...

  7. iOS-程序发布-32位和64位系统的兼容

    在苹果推出iPhone5S时,64位的应用就走到了眼前.当时就看见苹果官方资料宣布iOS7.x的SDK支持了64位的应用,而且内置的应用都已经是64位. 我记得自己刚刚接触电脑时还有16位的系统,指针 ...

  8. iOS-多线程-内存管理

    iOS与OSX 多线程和内存管理  总结 一.              自动引用计数 1.自动引用计数(ARC)就是指内存管理中对引用采用自动计数的技术. 满足以下条件即可使用这种功能: Xcode ...

  9. Leetcode 232 Implement Queue using Stacks STL

    本题用两个栈实现队列,用栈的基本操作去实现队列的所有基本操作push(),pop(),peek()以及empty() sa作为输入栈,sb作为输出栈,将sa输入元素的反转过来放到sb中 push与sa ...

  10. 正则表达式提取url中的参数,返回json字符串

    var urlstr = "www.baidu.com?a=1&b=xx&c"; var s = urlstr.split("?"); var ...