Oracle中的TNSNAMES服务名配置陷阱

其实谈不上是陷阱,只是不注意的话,很容易出现配置错误。

这一篇介绍LOAD_BALANCE和FAILOVER配合可能导致的错误。

当服务名同时配置了LOAD_BALANCE和FAILOVER时:

TESTRAC =

(DESCRIPTION =

(ADDRESS_LIST =

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

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

(LOAD_BALANCE = ON)

(FAILOVER = OFF)

)

(CONNECT_DATA =

(SERVICE_NAME = TESTRAC)

)

)

且配置了REMOTE_LISTENER参数:

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac1

SQL> SHOW PARAMETER REMOTE_LISTENER

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

remote_listener                      string      LISTENERS_TESTRAC

检查实例2:

本栏目更多精彩内容:http://www.bianceng.cn/database/Oracle/

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac2

SQL> SHOW PARAMETER REMOTE_LISTENER

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

remote_listener                      string      LISTENERS_TESTRAC

数据库服务器上两个节点的TNSNAMES中LISTENERS_TESTRAC的配置均为:

LISTENERS_TESTRAC =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1521))

)

当实例2被关闭,并不会导致连接错误:

bash-2.03$ srvctl stop inst -d testrac -i testrac2

连接服务名:

SQL> CONN YANGTK/YANGTK@TESTRAC

已连接。

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac1

SQL> CONN YANGTK/YANGTK@TESTRAC

已连接。

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac1

SQL> CONN YANGTK/YANGTK@TESTRAC

已连接。

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac1

但是如果实例2没有问题,只是实例2的监听关闭,那么这个服务名的配置可能会导致错误:

bash-2.03$ srvctl start inst -d testrac -i testrac2

bash-2.03$ srvctl stop listener -n racnode2

再次测试连接:

SQL> CONN YANGTK/YANGTK@TESTRAC

已连接。

SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME

----------------

testrac1

SQL> CONN YANGTK/YANGTK@TESTRAC

ERROR:

ORA-12541: TNS:无监听程序

时间: 2024-08-02 16:35:54

Oracle中的TNSNAMES服务名配置陷阱的相关文章

nginx配置隐藏tomcat服务名配置求助

问题描述 小弟想请教,通过配置nginx实现隐藏nginx代理的tomcat的服务中的路径.就是只输入nginx的IP和端口,就能访问到tomcat的服务,而不必在输入像这样的localhost:8080/ma.note.pad/www/login.jsp,而是输入localhost:8080就可以访问到,该怎么配置实现?访问nginx代理的多个tomcat.急. 解决方案

oracle本地服务名配置说明

本地oracle客户端连接远程oracle数据库服务器配置说明如下: 1.找到本地oracle客户端安装目录,如:%path%\Oracle2.再找配置文件tnsnames.ora,其目录为 %path%\Oracle\product\10.1.0\Client_2\NETWORK\ADMIN\tnsnames.ora,如不存在,请先新建.3.用记事本打开文件tnsnames.ora,用以下内容替换原有内容: # tnsnames.ora Network Configuration File: 

Oracle中REMOTE_LISTENER对LOAD_BALANCE的影响

如果使用DBCA建立RAC数据库,默认情况下会在各个节点上配置REMOTE_LISTENER参数,因此以前测试的LOAD_BALANCE是在REMOTE_LISTENER存在的情况下进行的测试,这里测试一下去掉REMOTE_LISTENER对LOAD_BALANCE的影响. 数据库环境为10.2.0.4 Rac for Solaris for sparc 64: SQL> SELECT * FROM V$VERSION; BANNER ------------------------------

Oracle Database 10g数据库安装及配置教程_oracle

Oracle安装配置教程分享给大家供大家参考,具体内容如下 1.安装 Oracle 版本:Oracle Database 10g Release 2 (10.2.0.1) 下载地址: http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html 安装设置: 1)这里的全局数据库名即为你创建的数据库名,以后在访问数据,创建"本地Net服务名"时用到: 2)数据库

ASP.NET技巧:获取本机上配置好的Oracle服务名

asp.net|oracle|技巧         /*        获取Oracle服务名        1.查询注册表,获取oracle安装根目录            如:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME   REG_SZ  E:\ORACLE\ORA92            得知oracle服务名文件所在地:根目录\network\ADMIN\tnsnames.ora                    2.解析该文件,该

Win 2003中为SMTP服务配置本地域

本文将说明如何在Windows Server 2003中为SMTP服务配置本地域.如何更改默认域的名称.配置别名域以及指定Drop文件夹. SMTP服务域用于组织要传递的消息.SMTP虚拟服务器至少有一个域:默认的本地域. 本地域是由本地SMTP服务器提供服务的域名系统(DNS)域.到达SMTP服务器的包含本地域名的消息或者在本地传送到Drop文件夹,或者与不可传递的(NDR)报告一起返回给发送方. 如何重命名默认域 默认域用于给来自不含有域的地址的消息加盖戳记.SMTP虚拟服务器必须有一个默认

在Windows 2003中为SMTP服务配置本地域

本文将说明如何在Windows Server 2003中为SMTP服务配置本地域.如何更改默认域的名称.配置别名域以及指定Drop文件夹. SMTP服务域用于组织要传递的消息.SMTP虚拟服务器至少有一个域:默认的本地域. 本地域是由本地SMTP服务器提供服务的域名系统(DNS)域.到达SMTP服务器的包含本地域名的消息或者在本地传送到Drop文件夹,或者与不可传递的(NDR)报告一起返回给发送方. 如何重命名默认域 默认域用于给来自不含有域的地址的消息加盖戳记.SMTP虚拟服务器必须有一个默认

Oracle无法启动2——监听程序当前无法识别连接描述符中请求的服务

一.发现问题 在连接oracle 10g数据库的时候老是连不上,服务也启动了,但一连接就弹出TNS:监听程序当前无法识别连接描述符中请求的服务, 昨天还好好的连着,今天怎么就突然不能用来,想想会不会是昨天改了配置文件的原因,对比了一下昨天备份的那个配置文件,发现有些地方不一样.检查了一下监听的配置文件,发现里面并没有配置注册对我想要连接的那个数据库服务的监听器,上网找了下配置的语句,只要在listener.ora配置 SID_LIST_LISTENER =   (SID_LIST =     (

在容器服务中如何暴露服务到公网并配置负载均衡

在容器服务中,暴露应用提供的服务到公网有两种选择,一种是通过系统默认的路由应用acsrouting暴露服务到公网,适用的场景是:普通且简单的7层协议负载均衡,web页面访问路由服务,容器集群内服务之间7层协议互相访问的通信代理和负载均衡.另外一种是通过自定义SLB方式暴露服务,这种方式是属于较高级的功能,适用的场景是:4层协议负载均衡,自定义各服务的路由,在将传统架构迁移到容器架构过程中非容器集群的服务访问容器集群中容器的服务.下面分别以举例的方式介绍这些暴露服务到公网并配置负载均衡的能力. 如