我在XP上装完数据库,当时可以用SQL PLUS登陆 
但是重新启动机器后,就不能用SQL PLUS登陆了,提示 
ORA-12154: TNS:无法解析指定的连接标志符 
数据库应该是启动的,在任务里面能看到. 今天启动用SYSTEM用户用SQL PLUS登陆时,又报 ERROR - ORA-12541: TNS:no listener  
tnsnames.ora文件内容如下 # tnsnames.ora Network Configuration File: D:\oracleDB\network\admin\tnsnames.ora 
# Generated by Oracle configuration tools. ORCL = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = liz)(PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = orcl) 
    ) 
  ) EXTPROC_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 
    ) 
    (CONNECT_DATA = 
      (SID = ORCL) 
      (PRESENTATION = RO) 
    ) 
  ) 
listener.ora文件的内容如下 
# listener.ora Network Configuration File: D:\oracleDB\network\admin\listener.ora 
# Generated by Oracle configuration tools. SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = orcl) 
      (ORACLE_HOME = D:\oracleDB) 
      (PROGRAM = extproc) 
    ) 
  ) LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS_LIST = 
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) 
      ) 
      (ADDRESS_LIST = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = liz)(PORT = 1521)) 
      ) 
    ) 
  ) 
sqlnet.ora文件内容如下 
# sqlnet.ora Network Configuration File: D:\oracleDB\network\admin\sqlnet.ora 
# Generated by Oracle configuration tools. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 
我用lsnrctl start  显示下面的信息
C:\Documents and Settings\user>lsnrctl startLSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 18-6月 -2009 12:0
1:28Copyright (c) 1991, 2004, Oracle.  All rights reserved.Starting tnslsnr: please wait...Service OracleOraDb10g_home1TNSListener already running.
TNS-12560: TNS:protocol adapter error
 TNS-00530: Protocol adapter error
  32-bit Windows Error: 1056: Unknown error请高手帮忙看看是什么地方出错了,详细指点一下具体怎么修改。 

解决方案 »

  1.   

    (ADDRESS = (PROTOCOL = TCP)//应该是TCP吧
      

  2.   

    错了,不是这个,没看仔细,抱歉http://space.itpub.net/7199859/viewspace-374281
    你看看这个
      

  3.   

    建议LZ把HOST = liz换成IP地址127.0.0.1后再试试
      

  4.   

    1 首先检查数据库是否运行:通过服务界面查看,或者通过net start | findstr OracleService进行查看
    2 通过sqlplus / as sysdba看能否登录成功,如果成功说明应该是tnsnames.ora文件配置有问题
    3 检查tnsnames.ora中的HOST,PORT,SERVICE_NAME检查核实一下
    4 启动监听程序,然后使用sqlplus user/password@localservicename登录尝试
      

  5.   

    服务器上重新建监听客户端上新建tnsname 
      

  6.   

    请问如何建立在服务器上重新建监听?
      如何在 客户端上新建tnsname ?
    我是本机装的数据库,本机访问,重新启动后,报的错误如我上面的描述.把liz修改成127.0.0.1也不行但是我发现用SQLPLUS登陆的时候,用户名/密码都输入,把主机字符串输入成orcl就报上面的错误,但是
    如果我只输入用户名/密码,主机字符串不输入, 这个时候就可以,请问这种情况正常吗?还有没有高手能指点一下?谢谢
      

  7.   

    但是我发现用SQLPLUS登陆的时候,用户名/密码都输入,把主机字符串输入成orcl就报上面的错误,但是 
    如果我只输入用户名/密码,主机字符串不输入, 这个时候就可以,请问这种情况正常吗? 正常的啊,主机字符串是用来远程登录的。如果是登陆本地的库,完全可以不用主机字符串,直接用sqlplus username/passwd就可以了
      

  8.   

    在net manager中的服务命名里面,找到ORCL ,删掉,然后重新新建一个ORCL 试试看
      

  9.   


    listener已经启动了你可以用lsnrctl status查看一下。
      

  10.   


    根据你这里的提示,listener此时已经启动了,你可以用lsnrctl status查查listener的状况和实例注册的状况先。
      

  11.   


    用lsnrctl status查看结果如下,但是我看了结果,也解决不了问题啊? 哪位高人能指一个解决问题的办法.Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\user>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 19-6月 -2009 13:5
    3:48Copyright (c) 1991, 2004, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for 32-bit Windows: Version 10.1.0.2.0 - Produ
    ction
    Start Date                19-6月 -2009 12:57:19
    Uptime                    0 days 0 hr. 56 min. 29 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   D:\oracleDB\network\admin\listener.ora
    Listener Log File         D:\oracleDB\network\log\listener.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lizhen)(PORT=8080))(Presentation=HTT
    P)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lizhen)(PORT=2100))(Presentation=FTP
    )(Session=RAW))
    Services Summary...
    Service "orcl" has 2 instance(s).
      Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfullyC:\Documents and Settings\user>
      

  12.   

    listener好像是正常的啊。telnet本机的1521端口是否通?
    在net manager中重新建立ORCL的服务也不行吗?
      

  13.   


    listener是正常的,那就是tns这块的问题了,分别在服务器和客户端都tnsping tnsname一把,看有么有什么状况发生