[20130528]tnsnames.ora的格式问题.txt

[20130528]tnsnames.ora的格式问题.txt

--注:为了blog的显示问题,空格使用下划线.

40X =
(DESCRIPTION =
_(ADDRESS_LIST =
_(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.40)(PORT = 1521))
_)
_(CONNECT_DATA =
__(SERVER = DEDICATED)
__(SERVICE_NAME = test.com)
)
)

使用上面的连接数据库,会出现:
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

Enter user-name:
ERROR:
ORA-12560: TNS:protocol adapter error

d:\tools>tnsping 40X
TNS Ping Utility for 32-bit Windows: Version 11.1.0.7.0 - Production on 28-MAY-2013 11:54:50
Copyright (c) 1997, 2008, Oracle.  All rights reserved.
Used parameter files:
e:\oracle\product\11.1.0\db_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.40)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test.com)
TNS-12533: TNS:illegal ADDRESS parameters

参考老杨的帖子:
http://yangtingkun.net/?p=1294
http://yangtingkun.itpub.net/post/468/487506

问题的答案在看文档的时候被揭晓。原来Oracle的TNSNAMES.ORA中对格式存在要求,换行的下一行如果和上一行存在父子关系,则不能顶
头,至少要保留一个空格,来提示Oracle这不是一个新的配置,而是上面配置的继续。

根据文档的描述,对于子配置项,如果要单独一行,那么至少要在换行后保留一个空格,否则就应该与主配置同属一行。

本以为发现的是Oracle的一个bug,没想到却是文档中明确说明的特性,这就是文档没有看全就自以为是乱下判断的结果,引以为戒。

--如果按照我上面的配置,(DESCRIPTION = 前面没有空格,这个时候用net manager配置,根本无法打开"服务命名"配置界面.里面显示为空.

我的感觉这些问题实际上有时候查找很烦,避免错误的最好方式还是使用图形界面来配置.

如果修改如下:
40X =
(DESCRIPTION =
_(ADDRESS_LIST =
_(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.40)(PORT = 1521))
_)
_(CONNECT_DATA =
__(SERVER = DEDICATED)
__(SERVICE_NAME = test.com)
_)
)

tnsping 40X =>正常!
sqlplus scott/xxxx@40x  =>连接也正常.

但是使用net manager配置还是无法打开配置界面.

改成这样
40X =
_(DESCRIPTION =
_(ADDRESS_LIST =
_(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.40)(PORT = 1521))
_)
_(CONNECT_DATA =
__(SERVER = DEDICATED)
__(SERVICE_NAME = test.com)
_)
)

使用net manager配置界面正常.当然如果你不想别人通过net manager 访问tnsnames.ora文件,就这样改,自己不要忘记就可以了.

总之,不是特殊需要建议还是使用图形界面来编辑.

BTW:我的client端是11.1.0.7.0,32位的.

时间: 2024-09-20 14:35:28

[20130528]tnsnames.ora的格式问题.txt的相关文章

[20150924]tnsnames.ora是否可以带斜线.txt

[20150924]tnsnames.ora是否可以带斜线.txt --10g开始oracle支持ezconnect简单连接方式建立与数据库的连接. d:\tools\sqltemp>sqlplus scott/xxxxxx@192.168.100.40:1521/test.com SQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 24 08:32:43 2015 Copyright (c) 1982, 2013, Oracle.  All r

[20141229]配置tnsnames.ora使用rsp文件

[20141229]配置tnsnames.ora使用rsp文件.txt --大部分配置tnsnames.ora,特别是服务器都是直接编辑,使用copy & paste. --我个人特别讨厌copy & paste 使用vim出现阶梯显示的情况,特别讨厌,我多次跟我同事在copy & paste设置:set paste来避免这种情况. --但是就是不改,按照他们的道理这样做是能正常访问的. --如果能看看我以前写的 http://blog.itpub.net/267265/views

listener.ora,tnsnames.ora中一个空格的威力

最近几天被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花时间总结了一下,希望对大家有所帮助. listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者少一个空格,就会有不同的结果. 案例一 下面是一个监听的基本配置,我故意在前面多加了一个空格(黄色标记所示).  LISTE1=   (DESCRIPTION=     (ADDRESS_LIST

[20170914]tnsnames.ora的管理.txt

[20170914]tnsnames.ora的管理.txt --//昨天朋友讲tnsnams.ora的内容太长了,而且许多不需要的.管理不方便.我记得以前写[20150409]tnsnames.ora与IFILE.txt.链接 --//http://blog.itpub.net/267265/viewspace-1561107/ --//这样你可以按照某种分类管理.实际上这个我也是以前看别人的机器学来的,很简单就是建立多个tnsnames配置文件. --//使用参数IFILE=/path/xxx

[20160512]tnsnames.ora配置文件.txt

[20160512]tnsnames.ora配置文件.txt --今天再次解决1个tnsnames.ora配置文件.看来这个文件最好不要手工修改!! --通过例子来说明: 78 =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1521))     )     (SDU = 32768)     (CONNECT_DATA =       (

[20111220]tnsnames.ora的定位.txt

[20111220]tnsnames.ora的定位.txt 1.跟踪在linux下sqlplus的执行过程,可以很容易定位tnsnames.ora的定位过程. $ export TNS_ADMIN=/tmp$ strace -o  findtnsnames.txt sqlplus scott/xxxx@noexist $ grep -i tnsname findtnsnames.txtaccess("/home/oracle/.tnsnames.ora", F_OK) = -1 ENO

[20140226]tnsnames.ora别名之间使用逗号

[20140226]tnsname.ora别名之间使用逗号.txt 前几天看到别人在tnsnames.ora中定义中出现如下的定义: 40,40test =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.40)(PORT = 1521))     )     (CONNECT_DATA =       (SERVER = DEDICATED)       (SER

Oracle TNSNAMES.ORA配置

在安装目录下,如:E:\Oracle\Ora81\network\ADMIN下用写字板或记事本打开TNSNAME.ORA文件,文件内容大概如下: TEST.SOFTONE.COM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) 蓝色部分为安装时录入的信息. 如果该文件没有配置

浅析如何在tnsnames.ora中配置监听

以下是对如何在tnsnames.ora中配置监听进行了详细的分析介绍,需要的朋友可以过来参考下   tnsnames.ora所在位置:D:Installedoracleproduct11.1.0db_1NETWORKADMINtnsnames.ora也就是说在product中 只有配置了监听之后才可以登录到数据库中 复制代码 代码如下: TOTO =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 这里是IP地址)(PORT = 1