ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务,
百度说添加红色字的内容,重起后依然不行。
求解决办法
 
listener.ora内容SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:e:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )(SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = e:\app\Administrator\product\11.2.0\dbhome_1)
    (SID_NAME = ORCL)
    )

  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = EVAN)(PORT = 1521))
    )
  )ADR_BASE_LISTENER = e:\app\Administrator

解决方案 »

  1.   

    首先你oracle安装在什么系统上的?
    tnsname.ora 有没有配置好?
    端口有没有开启?
    有没有防火墙?
    实例有没有启动?
    监听有没有启动?
      

  2.   

    没必要配的这么多属性,容易出错
    下面是我的配置,你参考一下:
    think =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.227.128)(PORT= 1521)
         )
        )
      )SID_LIST_think =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl.oracle.com)
          (SID_NAME = orcl)
          (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)))而且,不一定是listener.ora,也许tnsnames.ora也存在问题呢..?
      

  3.   

    红色的部分可以去掉,没有必要要那么多。
    给你提几点建议:
    一 我每次把数据库的服务和监听打开后,如果马上连,就会报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”,这和你的情况是一样的。我必须等一两分钟,然后就可以了。我的理解就是,此时的数据库得有一段的反应时间。你可以试试
    二 你可以在命令窗口中,用conn scott/tiger; 这样如果能连上,就可以确定是监听有问题了。如果连不上,那就说明tnsnames.ora文件也有问题。
    三 HOST = EVAN这句话,我认为这是问题的原因。EVAN是你的计算机的名称吗?你可以试试
      HOST =localhost 。如果你的ip固定的话,你可以试试HOST = 本地的ip
    祝你成功!
      

  4.   

    检查一下客户端的 tnsnames 中连接描述符是否正确