oracle 监听无法启动   
linster.ora如下LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xin)(PORT = 1521))
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )ADR_BASE_LISTENER = G:\app\zhangsan\product\12.1.0\dbhome_1\log
使用127.0.0.1 和 主机名都不可以 
命令行手动启动 监听服务 也不行 如图:tnsnames.ora  如下 ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )奇怪的是 使用sql plus 可以登录用户求助大神

解决方案 »

  1.   

    tnsnames是客户端配置,listener.ora是服务器端配置,你后面sqlplus能连到数据库,是因为你这种连接方式已经绕过了监听,也就服务器上能这么搞搞了。其实你把那个监听配置文件listener.ora给删了,我估计你的问题就解决了 
      

  2.   

    你搞个静态监听,把 
    LISTENER1 =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = xin)(PORT = 1521))
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )
    删掉用
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = orcl) 
          (SID_NAME = orcl)
          (ORACLE_HOME = D:\Oracle_12C\Administrator\product\12.2.0\dbhome_1)
        )GLOBAL_DBNAME 数据库名,SID_NAME 实例名  ORACLE_HOME 路径然后你看你的系统环境变量里面有木有 Oracle_home基本上应该这些就没啥问题了
        
      

  3.   

    你首先开开Oracle服务器有没有打开,确定打开后再查询配置文件夹问题;建议你搞个静态监听:
    # listener.ora Network Configuration File: D:\app\admin\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\app\admin\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:D:\app\admin\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )ADR_BASE_LISTENER = D:\app\admin
      

  4.   

    服务器上是不是同时存在几个不同的oracle数据库版本,或是同时存在oracle服务端和客户端,是的话可以检查下path设置的对吗
      

  5.   

    使用  netca 这个命令行,重新配置一下。