2010-04-29 62 views
6

我有错误?我的pl/Sql开发人员说我的oracle数据库找不到服务描述符但是,当我做一个检查听众时,我得到这个错误。Oracle TNS问题?

LSNRCTL> start 
Starting tnslsnr: please wait... 

Service OracleOraDb10g_home1TNSListener already running. 
TNS-12560: TNS:protocol adapter error 
TNS-00530: Protocol adapter error 



LSNRCTL> status 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
    TNS-00511: No listener 
    32-bit Windows Error: 61: Unknown error 

我的listener.ora的内容是

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (GLOBAL_DBNAME = Oracle10g) 
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
     (SID_NAME = ORCL) 
    ) 
) 

LISTENER = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
) 

和 在tnsnames.ora内容是这样的

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora 
# Generated by Oracle configuration tools. 

VMOBILE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = orcl) 
    ) 
) 

VMOBILEMASTER = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = ORCL) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = SHARED) 
     (SERVICE_NAME = ORCL) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

请我对这些晚上的最后期限。请帮忙。

+0

请发布您的SQLNET.ORA文件。这可能是问题的一部分。当这个文件配置不正确时,我看到了这个错误。 – Karlomanio 2016-05-24 16:59:10

回答

2

这可能是一个配置问题,这意味着我们很难远程解决。你需要检查的两件事是

  1. LISTENER.ORA文件符合您TNSNAMES.ORA文件
  2. 的信息在你的hosts文件是正确的条目。

这是您尝试连接的本地或远程数据库吗?

编辑

的hosts文件(Windows环境)是在地方,比如

C:\WINDOWS\system32\drivers\etc 

显然,这取决于(不同的驱动器号或别的什么)你的环境是如何设置的。

编辑

您需要GLOBAL_DBNAME听者文件到SERVICE_NAME匹配在tnsnsames文件即ORCL

+0

我尝试了主机文件,并且它已正确安装。 CAn您帮助审查TNSname.ora文件和我上面张贴的LISTENER.ORA是它的顺序。 – persistence 2010-04-29 10:47:21

0

该错误可能是在listener.ora文件。尝试用(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))的行替换localhost,其中名称或运行侦听器的服务器的IP编号。

+0

我试过你的建议仍然有相同的错误。 LSNRCTL>启动 开始TNSLSNR:请稍候... 服务OracleOraDb10g_home1TNSListener已经在运行。 TNS-12560:TNS:协议适配器错误 TNS-00530:协议适配器错误 – persistence 2010-04-29 11:01:35

+0

如果您执行'lsnrctl reload' – 2010-04-29 11:05:34

0

我会用任何ipconfig替换本地主机告诉你是你使用的IP地址。

0

不幸的是,这个错误可能发生在各种情况下。

  1. Oracle数据库服务(OracleServiceXE或您正在使用的任何版本)实际上并未运行。
  2. 用户试图在非管理员帐户下运行TNSListener服务,从而阻止它注册关联的Windows服务。
  3. 由于机器上有多个ORACLE_HOME,导致冲突。
  4. 服务或配置设置没有任何问题,但在Windows服务器重新启动之前,TNSListener服务无法成功启动。
0

我已经运行LSNRCTL从CMD.EXE开始今天解决此错误消息,启动“系统管理员”。

我在listener.ora和tnsnames.ora中有'localhost'服务器。另外我在SQL.ini中有SQLNET.AUTHENTICATION_SERVICES =(NONE)

在我尝试使用LSNRCTL.EXE之前,我没有在Windows服务列表中侦听servise。 LSNRCTL开始来自管理员cmd的命令为我做。