ITPub博客

首页 > 数据库 > Oracle > 【LISTENER】因 tnsnames.ora配置文件配置问题导致ORA-12154错误排查一例

【LISTENER】因 tnsnames.ora配置文件配置问题导致ORA-12154错误排查一例

原创 Oracle 作者:OCMU联盟 时间:2010-09-13 23:45:05 0 删除 编辑
这是一个有关手工配置tnsnames.ora不当,导致服务名不可用的一个问题案例。提醒大家在手工配置的过程中注意其中的细节。

1.错误信息如下
当使用secooler这个服务名连接数据库的时候,收到如下错误
-bash-3.00$ sqlplus sec/sec@secooler

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 13 23:11:00 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


Enter user-name:

2.检查Oracle的监听配置文件tnsnames.ora
$ vi tnsnames.ora
……
secooler=
 (DESCRIPTION=
 (ADDRESS=(PROTOCOL=tcp)(HOST=secdb)(PORT=1521))
(CONNECT_DATA=
 (SERVICE_NAME=secooler)))
……

问题就处在在配置secooler服务名的时候存在一行内容没有留有空格(上面第四行的信息"(CONNECT_DATA="前面没有留有空格)。

3.处理问题
仅需将第四行前增加一个空格即可解决问题。

4.关于tnsnames.ora配置文件的写法
在手工配置tnsnames.ora文件的时候,最容易出现的就是语法和格式上的问题。针对具体的一个服务名的配置只允许开始服务名顶头书写。
即便是整个服务名内容均写在一行也是没有问题的。例如secooler服务名按照如下方法进行配置。
secooler=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=secdb)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=secooler)))

测试服务名secooler的可用性
-bash-3.00$ sqlplus sec/sec@secooler

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 13 23:14:10 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

5.小结
文中提到的问题与Oracle解析tnsnames文件有关。如果大家习惯使用netca来配置服务名,那将会很少遇到因为tnsnames.ora格式上的问题。不过netca这种图形化界面工具在某些条件下不便于使用(如仅允许使用命令行界面完成维护任务)。因此,建议大家对tnsnames.ora文件格式有充分的了解,避免不必要的麻烦。

Good luck.

secooler
10.09.13

-- The End --

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70034820/viewspace-2994410/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
OCM联盟( Oracle Certified Master Union)是由侯圣文(ACE总监)发起的一个公益组织,旨在为每一个OCM大师提供一个可以继续展示自己才华,技术和实力的平台。

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8407026