2012-09-21 152 views
3

确定一切正常,直到昨日现在我突然收到此错误
ORA-12514:TNS:监听器目前不知道在连接描述符
没有请求的服务已被修改ORA 12514错误:TNS监听器错误

XE = 
    (DESCRIPTION = 
(ADDRESS = (PROTOCOL = TCP)(HOST = jainam-2b1c493d)(PORT = 1521)) 
(CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = XE) 
) 
) 

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

    ORACLR_CONNECTION_DATA = 
     (DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
    (SID = CLRExtProc) 
    (PRESENTATION = RO) 
) 
) 


我完全卡住了,不知道该怎么做。 我从这里试过帮助
http://dba-oracle.com/t_ora_12514_tns_listener_does_not_currently_know_service_requested.htm 但没用。 感谢


编辑:
这里的输出lsnrctl service

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) 
Services Summary... 
Service "CLRExtProc" has 1 instance(s). 
    Instance "CLRExtProc", status UNKNOWN, has 3 handler(s) for this service... 
    Handler(s): 
     "DEDICATED" established:0 refused:0 
     LOCAL SERVER 
     "ORACLE SERVER" established:0 refused:0 current:0 max:25 state:ready 
     CLRExtProc 
    (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\NTN_6B4_641B624E_B22.ORA)) 
    "ORACLE SERVER" established:0 refused:0 current:0 max:25 state:ready 
    CLRExtProc 
    (ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\NTN_6B4_641B624E_282.ORA)) 
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 "XEXDB" has 1 instance(s). 
Instance "xe", status READY, has 1 handler(s) for this service... 
Handler(s): 
    "D000" established:0 refused:0 current:0 max:1022 state:ready 
    DISPATCHER <machine: JAINAM-2B1C493D, pid: 3708> 
    (ADDRESS=(PROTOCOL=tcp)(HOST=jainam-2b1c493d)(PORT=2763)) 
Service "xe" has 1 instance(s). 
Instance "xe", status READY, has 1 handler(s) for this service... 
Handler(s): 
    "DEDICATED" established:0 refused:0 state:ready 
    LOCAL SERVER 
The command completed successfully 
+0

我不是这个错误的专家,但战斗有点。你确定运行oracle的机器仍然可以到达主机吗? –

+0

你可以在命令行尝试'tnsping [yourconnection]',看看它说什么吗? – Deruijter

+0

@Deruijter yes tnsping 127.0.0.1是否能够连接 –

回答

2

其中一个原因你那种错误的,因为听者之前做过数据库实例启动。听众必须始终先启动。

  1. 检查数据库实例启动并运行
  2. 检查lsnrctl service命令的输出,看服务注册的。
  3. 检查连接到实例时是否正确指定了SERVICE_NAME
  4. 如果数据库实例发生在侦听器之前,有时您只需稍等一下,或者您可以执行alter system register以注册实例。
+0

检查编辑请... –

+0

@ user1461078检查什么?你什么意思? –

+0

'lsnrctl service'的输出并查看是否有错误。 –

4

对我来说帮助下SID_DESC添加到C:\ oraclexe \程序\ ORACLE \产品\ 11.2.0 \服务器\网络\ ADMIN \ listener.ora中

SID_LIST_LISTENER = 
    (SID_LIST = 
    ... 
    (SID_DESC = 
     (SID_NAME = XE) 
     (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server) 
    ) 
) 

重新启动后监听器和数据库的访问再次工作。

由于http://grow-n-shine.blogspot.de/2011/11/oracle-11g-xe-issue-ora-12514.html

+0

当一切都失败时,这应该对我有用。 – tjeloep

+0

也为我工作。 –

2

打开SQL Plus并连接到系统用户:

system/[email protected] 

并运行两个命令:

SQL> alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both; 
SQL> alter system register;