2016-06-12 40 views
0

我的问题始于空闲实例。我试图用SQL Developer连接到我的本地XE实例。ORA-12514,TNS:侦听器当前不知道连接描述符中请求的服务

我在Google上尝试了很多链接,可能如果您提供了一些解决方案,我可以随时告诉您,我尝试过这些方法,但仍然期待解决此问题。

附加信息:在SQL Developer中

  1. 所有其他康恩字符串都工作得很好。
  2. 试图重新启动DB与/ NOLOG和所有.....
  3. 试过ALTER SYSTEM ....
  4. 我可以连接到ORCL(我的本地SID名)与SYS权限正确,唯一的问题是与假Oracle附带的用户HR。
  5. 我能解决原来闲置的实例问题
  6. 用的SQL * Plus与裸字符串连接:说明......给了我错误

    Error 6 initializing SQL*Plus 
    SP2-0667: Message file sp1<lang>.msb not found 
    SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 
    
  7. 我的Oracle主是“C:\ APP \\产品\ 11.2.0 \ dbhome_1 \网络\ ADMIN”

附件为listener.ora中(第一行是注释,但是当我把#在这么果然大胆,所以请考虑被注释掉):

#ADR_BASE_LISTENER = C:\app\387759 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\app\387759\product\11.2.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:C:\app\387759\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
    ) 
    (SID_DESC = 
     (GLOBAL_DBNAME = XE) 
     (ORACLE_HOME = C:\app\387759\product\11.2.0\dbhome_1) 
     (SID_NAME = ORCL) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
) 

ADR_BASE_LISTENER = C:\app\387759\product\11.2.0\dbhome_1\log 

现在该错误CMD(如管理员)是:

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

另外,有关条目(除了其他工作的人)tnsnames.ora中有:

LISTENER_ORCL = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 

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

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.36.160.158) 
    ) 
) 

另外,请考虑我可以解决闲置的实例问题,因此它不再是。

387759 is my username to the machine. 

更多信息,只改变我做,同时固定空闲实例的问题,那就是从InitORCL.ora文件中删除线

*.local_listener='LISTENER_ORCL' 

,然后从PFILE创建再次spfile中,但刚才我再次将它添加到pfile中,然后创建spfile。

Cmd的行开始给我的错误:

SQL> startup  
ORA-00119: invalid specification for system parameter LOCAL_LISTENER  
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'  
SQL> 

因此从理论上讲,我回到我无法启动Oracle实例的问题。

不能够定位提到的位置PFILE(在评论)之后,我尝试使用命令

show parameter spfile;

我得到了以下几点:

SQL> show parameter spfile; ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

一个额外的信息,我可以看到只有2服务运行在services.msc

OracleOraDb11g_home1TNSListener
OracleServiceORCL

我手动启动它们时我需要使用本地的oracle,否则我会让它们不能启动模式来保存一些内存。其他Oracle相关的服务我刚关上几乎所有的时间,并在这个时候,我得到这个error.Could帮助缩小问题

`

+0

您的本地侦听器名称不应使用单引号:'* .local_listener = LISTENER_ORCL'。 –

+0

感谢@AlexPoole,我试图从spfile创建pfile,但无法在$ ORACLE_HOME/dbs中找到相同的文件。 – user3792812

+0

我可以再次在listener.ora中注释ADR_BASE_LISTENER = C:\ app \ 行后运行它,如果这有助于任何人。 – user3792812

回答

0

你的ORACLE_HOME应C:\app\387759\product\11.2.0\dbhome_1。你TNS_ADMIN应该是C:\app\387759\product\11.2.0\dbhome_1\NETWORK\ADMIN - 该目录包含您的listener.ora,sqlnet.ora中,tnsnames.ora中等等

如果你可以在本地连接为SYS(例如,sqlplus/as sysdba),但它说你连接到一个空闲的情况下,则数据库未运行。您需要启动数据库,因为您在Windows上,所以还需要启动OracleXE服务。

当数据库启动时,它将尝试向监听器注册其服务名称。默认it will try to use the network name of the server。您的侦听器只在本地主机上侦听,因此可能不匹配。它看起来像你试图告诉它注册该地址,但添加了单引号;它应该是:

*.local_listener=LISTENER_ORCL 

有了这能解决DB应该开始和登记对抗侦听器,那么你应该能够在同一台机器,例如连接搭配:

sqlplus userid/[email protected] 

sqlplus userid/[email protected]//localhost:1521/orcl.36.160.158 

...如果你tnsnames.ora服务名称是正确的。同样的值应该从SQL Developer工作。尽管如此,您将无法从其他任何地方连接,因为在本地主机上侦听的只有

+0

向问题添加新信息并设置其格式。作为评论,它不属于,也不容易阅读。你是否让这些变量与文件中的内容相匹配,即用387759部分留下了什么问题? –

+0

谢谢,新信息添加到问题。 – user3792812

+0

有人可以帮助我:在编辑pfile> spfile创建后,我仍然无法克服以下情况。 SQL> startup ORA-00119:无效的系统参数规范LOCAL_LISTENER ORA-00132:语法错误或无法解析的网络名称'LISTENER_ORCL' SQL> – user3792812

相关问题