2015-11-19 130 views
0

当我想在SQLDeveloper中连接到我的数据库时,我收到一个TNS侦听器错误消息。 当我在我的服务中停止OracleOraClient11g_home1_32bitTNSListener并重试连接时,它工作正常。然后OracleXETnsListener正在运行。 如何避免停止另一个可以启动的侦听器?两个Oracle TNS侦听器

我有两个listener.ora文件,其中端口1521的配置。所以我认为它与端口有关?

two tns listener

enter image description here

+0

是;但为什么你想运行两个听众?你会得到什么错误? –

+0

请参阅更新。当我终止正在运行的oracleClient11g TNS侦听器时,它可以工作。那么XETNS Listener正在运行 –

回答

2

在任何操作系统上,你不准有2个进程监听同一端口上(在这种情况下,1521)在同一个网络inteface(我要去承担你只有1个网络接口)。否则操作系统将如何知道将端口连接交给哪个进程!

正如Alex所提到的,您不需要运行多个侦听器。禁用其中一个服务并编辑指向正确服务的listener.ora - 默认情况下,这位于oracle_home/network/admin目录下,但是如果您已更改系统上的TNS_ADMIN变量值,它将在那里。如果您愿意,您可以为SID /服务名称添加另一个侦听器,但在Windows的情况下,它将自动拾取系统上运行的所有实例。

以防万一你真的想运行2个监听器(例如,如果你有一个非常老的RDBMS版本,你只需要这样做),你可以编辑一个listener.ora文件并改变端口来说1522下面是一个例子:直接

SCN = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = SCN) 
    ) 
) 

或用的SQLDeveloper您可以更改端口上:

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

之后再更改的tnsnames.ora的连接指向该端口像这样带有TNS直接选项的IDE,如果这是您配置的方式。

相关问题