两个 Oracle TNS 侦听器
Two Oracle TNS Listener
当我想在 SQLDeveloper 中连接到我的数据库时,我收到一条 TNS 侦听器错误消息。
当我在我的服务中停止 OracleOraClient11g_home1_32bitTNSListener 并重试连接时,它工作正常。然后 OracleXETnsListener 是 运行。
如何避免停止另一个可以启动的一个侦听器?
我有两个配置了端口 1521 的 listener.ora 文件。所以我认为它与端口有关?
在任何操作系统上,您都不允许在同一个网络接口上的同一个端口(在本例中为 1521)上侦听 2 个进程(我假设您只有 1 个网络接口)。不然操作系统怎么知道把端口连接交给哪个进程呢!
正如 Alex 所提到的,您不需要 运行 多个侦听器。禁用其中一项服务并编辑指向正确服务的 listener.ora - 默认情况下,它位于 oracle_home/network/admin 目录下,但如果您更改了系统上的 TNS_ADMIN 变量值,它将在那里。如果愿意,您可以为 SID/Service 名称添加另一个侦听器,但在 Windows 的情况下,它将自动获取系统上 运行ning 的所有实例。
以防万一你真的想要 运行 2 个监听器(例如,如果你有一个非常旧的 RDBMS 版本,你只需要这样做)你可以编辑其中一个 listener.ora文件并将端口更改为 1522。示例如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
然后您将连接的 tnsnames.ora 更改为指向该端口,如下所示:
SCN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCN)
)
)
或者使用 SQLDeveloper,您可以使用 TNS 直接选项直接在 IDE 上更改端口(如果您是这样配置的)。
当我想在 SQLDeveloper 中连接到我的数据库时,我收到一条 TNS 侦听器错误消息。 当我在我的服务中停止 OracleOraClient11g_home1_32bitTNSListener 并重试连接时,它工作正常。然后 OracleXETnsListener 是 运行。 如何避免停止另一个可以启动的一个侦听器?
我有两个配置了端口 1521 的 listener.ora 文件。所以我认为它与端口有关?
在任何操作系统上,您都不允许在同一个网络接口上的同一个端口(在本例中为 1521)上侦听 2 个进程(我假设您只有 1 个网络接口)。不然操作系统怎么知道把端口连接交给哪个进程呢!
正如 Alex 所提到的,您不需要 运行 多个侦听器。禁用其中一项服务并编辑指向正确服务的 listener.ora - 默认情况下,它位于 oracle_home/network/admin 目录下,但如果您更改了系统上的 TNS_ADMIN 变量值,它将在那里。如果愿意,您可以为 SID/Service 名称添加另一个侦听器,但在 Windows 的情况下,它将自动获取系统上 运行ning 的所有实例。
以防万一你真的想要 运行 2 个监听器(例如,如果你有一个非常旧的 RDBMS 版本,你只需要这样做)你可以编辑其中一个 listener.ora文件并将端口更改为 1522。示例如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
然后您将连接的 tnsnames.ora 更改为指向该端口,如下所示:
SCN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ROBS)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCN)
)
)
或者使用 SQLDeveloper,您可以使用 TNS 直接选项直接在 IDE 上更改端口(如果您是这样配置的)。