Oracle 11 g 出现Oracle ORA-12505, TNS:listener does not currently know of 时主要分两种情况
一:使用 SQL developer等界面软件去连接数据库时,
多半是由于没开启服务造成的。
办法:
1.监听服务没有跑起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,
启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXXXX,XXXX就是你的database SID
二:使用应用程序去连接数据库时,
解决方法:
打开Oracle的 listener.ora 文件:
(oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora)
修改前:
# listener.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = suse10.site)(PORT = 1521))
)
)
------------------------------------------------------------------------------------------------------------------------------
修改后:
# listener.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1) (PROGRAM = extproc) )
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
(
(ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
( SID_NAME = ORCL )
)
) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = suse10.site)(PORT = 1521)) ) )
上面的红色文字是增加的内容。 (ORCL -- 是你的SID 数据库名)
PL/SQL DEVELOPER 和 SQLPLUS 采用 service_name 进行连接而应用程序是按照sid_name进行连接,
所以出现 PL/SQL DEVELOPER和SQLPLUS 能够连接而应用程序却无法连接的问题。
使用 SELECT INSTANCE_NAME FROM V$INSTANCE 语句,就可以查看当前数据库实例的sid_name了。
重启Oracle的监听器。问题解决。