我在带有windows xp的vm中安装了oracle 11g,设置了SID = orcl,但是当我尝试连接SQL开发人员到db时遇到错误ORA-12505, TNS:listener does not currently know of SID given in connect
我使用lsnrctl服务检查了监听器,它说监听器不支持任何服务
编辑: 这是我的tnsnames.ora文件
> tnsnames.ora Network Configuration File: >E:\app\oracle\product\11.1.0\db_1\network\admin\tnsnames.ora
> Generated by Oracle configuration tools.
>ORCL =
> (DESCRIPTION =
> (ADDRESS = (PROTOCOL = TCP)(HOST = winxpora11g)(PORT = 1521))
> (CONNECT_DATA =
> (SERVER = DEDICATED)
> (SERVICE_NAME = orcl)
> )
> )
我是一个新手,所以任何帮助将不胜感激
这是我的listener.ora
> listener.ora Network Configuration File: >E:\app\oracle\product\11.1.0\db_1\network\admin\listener.ora
> Generated by Oracle configuration tools.
> LISTENER =
> (DESCRIPTION_LIST =
> (DESCRIPTION =
> (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
> (ADDRESS = (PROTOCOL = TCP)(HOST = winxpora11g)(PORT = 1521))
> )
> )
答案 0 :(得分:0)
问题是,自实例启动以来,侦听器似乎已关闭或重置。默认情况下,实例将是“自动注册”,并在启动时将自己注册到侦听器。最简单的解决方法是重新启动OracleServiceORCL服务(如果它在oracle服务中设置为“startup open”,这应该是默认的 - 如果不是,我可以帮助详细说明连接和更改它通过命令行)。
永久解决方案(如果这很常见)是将服务设置为listener.ora中的静态条目并重新启动侦听器服务。
答案 1 :(得分:0)
旧线程,但万一其他人在这里偶然发现。在SQL Developer中,你可以做到
Connection Type: Basic
Hostname: winxpora11g
Port: 1521
Service Name: orcl
这会绕过TNSNAMES.ORA并将您连接到数据库。