ORA-12505,TNS:监听器当前不知道连接描述符中给出的SID?

时间:2015-01-03 09:01:28

标签: java oracle

当我尝试通过SQL Developer或我的java应用程序连接到oracle时,我得到以下错误,但我能够连接 从SQL PLUS(命令行工具)

    Listener refused the connection with the following error :

    ORA-12505, TNS:listener does not currently know 
    of SID given in connect descriptor

每当我重新启动系统时,我都会面临这个问题。虽然系统重启后10次中有1次,但我能够成功连接。

我可以看到所有的oracle服务,包括 OracleOraDb11g_home1TNSListener 都在服务部分。仅供参考 我的SID名称是 orcl

通过卢克回答ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 看起来在重启时oracle数据库早于 OracleOraDb11g_home1TNSListener 启动。所以它不能 向听众注册。

我认为解决方案应首先使监听器启动然后启动数据库。 如何配置重启后一段时间后启动数据库?

1 个答案:

答案 0 :(得分:0)

  

每当我重新启动系统时,我都会面临这个问题。虽然系统重启后10次中有1次,但我能够成功连接。

可能的原因是系统重启后SERVICES未启动。检查方式取决于operating system

例如,在Windows OS中,您可以转到services.msc,查看TNS服务是否已启动并正在运行。

要检查侦听器是否已启动,以及数据库是否已注册,请检查lsnrctl status。另外,请记住,系统重启后的某个时间需要listener。在对侦听器进行任何更改后,同样适用,您必须等待一段时间。