使用SqlDeveloper登录Oracle,提示报错ORA-12505,如下

ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

错误的提示大概就是不清楚这个SID,而SID是数据库实例的映射表示,那么其原因就是给定的SID不是Oracle实例的真正映射或根本就没有为Oracle实例做映射

 

解决办法

打开Oracle的listener.ora文件

路径为 D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora(具体看你自己的安装路径)

修改后的文件内容如下

# listener.ora Network Configuration File: D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
     (GLOBAL_DBNAME = orcl.168.6.168)
     (ORACLE_HOME = D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1)
     (SID_NAME = ORCL)
     )

    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  
  )

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

ADR_BASE_LISTENER = D:\SoftwareDevelopment\Oracle

红色部分为你添加的内容

上面红色部分的意思就是:用指定的SID_NAME 来映射这个全局数据库,其中ORACLE_HOME 指定Oracle实例的安装路径

GLOBAL_DBNAME是全局数据库名(你安装过程时指定的)

ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

看到上面的图片有印象没?

 

 

然后重启Oracle的监听器服务OracleOraDb11g_home1TNSListener

ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

重新登录

ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

成功连接!

ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

 

 

ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

值得一提的是,这个问题的原因也基本上是要往listener.ora文件中添加那段内容,从而做一个SID和全局数据库的映射

相关文章: