Listerner在错误的主机(localhost)上侦听

问题描述 投票:0回答:2

[我使用netca创建了一个监听器,称为监听器。

当我启动侦听器(使用lsnrctl start时,我有以下日志。

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-JUN-2012 17:56:35

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Starting /opt/oracle/eesrv/11.2.0/db1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/network/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/sakura/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sakura)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                24-JUN-2012 17:56:35
Uptime                    0 days 0 hr. 0 min. 10 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/network/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/sakura/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
The listener supports no services
The command completed successfully

Q。为什么侦听器在本地主机上侦听,而不在樱花上侦听?!?

这是我的listener.ora文件(我明确指定使用sakura):

TRACE_DIRECTORY_PROD = /var/opt/oracle/otk/1.0/log/network/trace

SUBSCRIBE_FOR_NODE_DOWN_EVENT_PROD = OFF

LISTENER =(DESCRIPTION_LIST =(说明=(地址=(协议= TCP)(主机=樱花)(端口= 1521))))

ADR_BASE_LISTENER = / opt / oracle

LOG_DIRECTORY_PROD = /var/opt/oracle/otk/1.0/log/network

我为什么做错了?

谢谢

oracle localhost listener
2个回答
1
投票

从评论中展开

[似乎sakura正在解析为与localhost.localdomain相同的地址,即127.0.0.1。这表明/etc/hosts中有一个条目将sakura映射到127.0.0.1

您可以:

  • 删除该映射;
  • 更改它以显示一个外部IP地址,如果它不能自动解析为一个IP地址;
  • 如果要解析为外部IP的域名,请更改listener.ora以使用完全限定的域名,例如sakura.example.com;
  • 或更改listener.ora以直接使用外部IP地址而不进行查找。

最后一个选项可能是最简单的,除非您具有DHCP分配的IP地址;否则, @dseibert的建议。


0
投票

如果您更改主机名:{newHostName}

步骤1.检查环境变量:

export ORACLE_HOSTNAME = {newHostName}导出ORACLE_UNQNAME = ORCL导出ORACLE_BASE = / oracle导出ORACLE_HOME = $ ORACLE_BASE / product / 12.1.0 / db_1导出ORACLE_SID = ORCL

第2步。在oracle安装目录(例如/ oracle)中找到有关“ oldHostName”(例如oracle_12C.localdomain)的信息查看您的主机名:

主机名grep -r“ oracle_12C” / oracle

就我而言,我发现这些文件是使用新的“ newHostName”手动更改的:文件1)/oracle/product/12.1.0/db_1/install/chainedInstall/globalcontext.xml文件2)/oracle/product/12.1.0/db_1/inventory/Components21/oracle.rdbms.scheduler/12.2.0.1.0/context.xml文件3)/oracle/product/12.1.0/db_1/inventory/Components21/oracle.ldap.client/12.2.0.1.0/context.xml文件4)/oracle/product/12.1.0/db_1/inventory/Components21/oracle.server/12.2.0.1.0/context.xml文件5)/oracle/product/12.1.0/db_1/inventoy/Clone/clone.xml

步骤3.启动实例:转到sqlplus:

cd $ ORACLE_HOME / binsqlplus / AS SYSDBASQL> STARTUP

步骤4.启动监听器{SID}例如:

cd $ ORACLE_HOME / binlsnrctl启动ORCL

步骤5.在控制台中检查结果...服务“ ORCL”具有1个实例。...

© www.soinside.com 2019 - 2024. All rights reserved.