Oracle连接出现ora-12154

Oracle连接出现ora-12154

配置好rac后,两个节点用tnsping都可以ping通,但用sqlplus连接都出现以下错误,不知道哪里出了问题
[oracle@rac2 admin]$ lsnrctl status

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAR-2008 08:32:26

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 9.2.0.4.0 - Production
Start Date                04-MAR-2008 08:29:03
Uptime                    0 days 0 hr. 3 min. 22 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /home/oracle/9.2.0.4/network/admin/listener.ora
Listener Log File         /home/oracle/9.2.0.4/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac2)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "esal" has 2 instance(s).
  Instance "rac1", status READY, has 1 handler(s) for this service...
  Instance "rac2", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@rac2 admin]$ lsnrctl service

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAR-2008 08:32:32

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac2)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "esal" has 2 instance(s).
  Instance "rac1", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         REMOTE SERVER
         (address=(protocol=tcp)(host=rac1)(port=1521))
  Instance "rac2", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
The command completed successfully
[oracle@rac2 admin]$ sqlplus cy/zh@esal

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Mar 4 08:32:45 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name

Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

Enter user-name: cy/zh@rac1
ERROR:
ORA-12154: TNS:could not resolve service name

SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@rac2 admin]$ sqlplus cy/zh@rac2

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Mar 4 08:32:59 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name

Enter user-name:

按照如下过程,一般都能解决:

在虚拟机内开cmd,用lsnrctl status查看监听器监听的服务
如看到监听服务“orcl”,那在本机的tns配置中(SERVICE_NAME = orcl)必须写orcl;如果想要自定义,则在虚拟机内的listener配置中就要加入自定义服务名,记得要重启监听服务:lsnrctl reload
最后形成的配置文件如下
虚拟机listener:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)      自定义服务名
      (ORACLE_HOME = E:oracleproduct10.2.0db_1) db_home
      (SID_NAME = test)      

    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:oracleproduct10.2.0db_1)  ##这个服务保证你可以使用外部过程,如C程序
    )
  )

本机tns:

ORCL_XNJ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)  与自定义服务名对应
    )
  )

再次连接,问题解决!

记住,一定从最简单的原因找起,不要一上去就看到网上的什么改process数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。

VS2008连接oracle 出现错误 ora-12154 tns 无法解析指定的连接标示符

在保证你的代码没有错误的前提下:
(一)检查OracleOraDb10g_home1TNSListener 服务有没有启动,即监听服务
(二)检查tnsnames.ora是否添加连接串(建议用SQLPLUS或者pl/sql测试),其路径一般是:%Oracle_home%product10.2.0db_1NETWORKADMINtnsnames.ora

以上答案供参考

时间: 2024-10-20 08:53:13

Oracle连接出现ora-12154的相关文章

plsql连接oracle数据库报ora 12154错误解决方法_oracle

plsql连接oracle数据库报ora 12154错误 今天遇到一个问题,使用sqlplus能够连接到远程的数据库,但是使用plsql却连接不上,报错"ORA-12154: TNS: 无法解析指定的连接标识符" 解决方法如下: 1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听 客户端:tnsping <tns_name> 服务器Linux下: #>lsnrctl status 查看监听状态 #>lsnrctl start 启动监听 2.通过Sql

SYBASE到ORACLE连接服务器的实现

oracle|服务器   SYBASE到ORACLE连接服务器的实现   作者:  CCBZZP           不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SYBASE里面叫做CONNECT OR CONNECTION PROFILE,通过ODBC实现与其它数据库的互联. 本文的测试环境为: 操作系统:  WINDOWS2000 SERVER (繁体系统) 安装数据库: SYBASE8.0  SERVER

SQL Server到Oracle连接服务器的实现

oracle|server|服务器 SQL Server到Oracle连接服务器的实现 作者:Jennifer 本文以SQL Server 2k为例说明SQL Server到Oracle连接服务器的具体实现过程. 1.要求pc机上安装oralce客户端软件和sqlserver2000软件. 2.客户端的配置tnsnames.ora文件,配置所要连接的数据库服务器(windows,unix等平台均可以)eg:tnsnames.ora......TEST =  (DESCRIPTION =    (

每次翻墙后导致oracle连接不上

问题描述 每次翻墙后导致oracle连接不上 登录pl sql developer软件时 弹出 百度说是ip变化导致的,我的ip设置的自动获取, 即便固定了,每次翻墙后,都会变成自动获取. OracleDBConsoleoracl 服务也启动不起来. 在这中情况下,我需要怎么配置下 oracle的文件. 我用的oracle 10版本 listener.ora和tnsname.ora 都是我的本地计算机名字, 解决方案 配置设置成127.0.0.1就行了,你用的是代理吧 解决方案二: 在liste

SQL Server到Oracle连接服务器

本文以SQL Server 2k为例说明SQL Server到Oracle连接服务器的具体实现过程. 1.要求pc机上安装oralce客户端软件和sqlserver2000软件. 2.客户端的配置tnsnames.ora文件,配置所要连接的数据库服务器(windows,unix等平台均可以) eg:tnsnames.ora ...... TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.11

asp.net使用ODP即oracle连接方式的的防注入登录验证程序

 这篇文章主要介绍了asp.net使用ODP即oracle连接方式的的防注入登录验证程序,需要的朋友可以参考下 网上有很多SQL连接方式的登录验证,但没有oracle连接方式的,我摸索了一上午写了这个可执行的函数,分享给大家 代码如下: // 用户登录检查 public bool LoginCheck(string f_LoginName, string f_LoginPass) { bool result = false; // 正则表达式检查 if (Regex.IsMatch(f_Logi

数据库管理Oracle 连接池信息的修改

       最近项目中用到的Oracle数据库在服务器上是建了多个表空间供不同系统使用,两个系统同时在使用过程中,正在开发的一个项目在测试运行时,时不时就出现连接池满了,连接不上的问题,为此查了下怎么修改Oracle连接池配置的修改方式,特记录下来备查. 目前Oracle只支持一个连接池,pool name为"SYS_DEFAULT_CONNECTION_POOL",管理连接池信息的也就一个包"DBMS_CONNECTION_POOL". 先看看包的相关说明: S

在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的

我们平时使用的都是32位的机器进行开发,装的都是32位的软件,但是我们的服务器一般都是64位的,所以有时也需要在64位的环境下装一个VS调试程序.最近遇到的一个问题就是一个同事换了一个电脑,用的是X64的Windows 2008作为操作系统,要进行Oracle的数据库连接,所以也装了64位的Oracle客户端.如果是控制应用项目或者WinForm项目可以正常连接Oracle,但是Web项目在程序中打开Oracle连接时,系统抛出了异常: 尝试加载 Oracle 客户端库时引发 BadImageF

oci-php5.6连接oracle,连接不上,如何配置?

问题描述 php5.6连接oracle,连接不上,如何配置? 我的机器是win7 64位,使用的xampps安装的php5.6, 配置了pdo扩展,但是在phpinfo的PDO drivers 中看不到对oci的支持,打开sqlite和odbc的pdo都没有问题,但是打开oci就是不显示,也就连接不了远程的oracle, 使用oci_connection提示方法未定义 如果使用new pdo的方式,提示找不到驱动 问题就是这样的,难道php5.6不支持连接oracle了么? 百度上能搜的都差不多