Oralce TNS:监听程序当前无法识别连接


安装Oralce之后,想连接一下,结果通过客户端PL/SQL,怎么也连不上,提示TNS:监听程序当前无法识别连接
解决办法:

1.查看本机的/$/Oracle/oracle/network/admin/
vi tnsnames.ora 没改之前后面的端口是1523 ,我把它改成1521了

SALES =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sales)
    )
  )

LISTENER_SALES =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))


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

2.再查看listener.ora
默认没有修改的是这样:其中没有上文tnsnames.ora中sales
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /mapbar/oracle/oracle)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC3))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1523))
    )

需要增加:红色部分是新增加的
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /$/oracle/oracle)
      (PROGRAM = extproc)
    )
     (SID_DESC =
      (GLOBAL_DBNAME = sales)
      (ORACLE_HOME = /$/oracle/oracle)
      (SID_NAME = sales)
    )

  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC3))
     )
     (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )

3.执行 lsnrctl  stop
           lsnrctl  start

相关内容