(b) Oracle 将使用 gethostname函数得出当地系统配置的主机名。
gethostname() 库函数将返回本地系统的标准主机名。
你也可以通过hostname命令得到该值。
(c) Oracle 对 gethostbyname() 函数输入之前一步2b中得到的主机名。
(d) Oracle 比较 2a 中与 2c中返回的IP, 若没有匹配的IP项,则监听器绑定到2a中返回的ip地址上。
或者
(e) 若有匹配项存在,则监听器绑定至所有工作的网络接口上。
你可以通过lsnrctl命令的输出非常容易地判断监听器是如何绑定到网络接口的,如下例:
$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 07-MAY-2007 15:29:48
Copyright
(c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS
of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux:
Version 10.2.0.1.0 - Production
Start Date 13-APR-2007 14:11:16
Uptime 24 days 1 hr. 18
min. 32 sec
Trace Level off
Security ON: Local OS Authentication
SNMP
OFF
Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.log
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.10)(PORT=1527)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost.ro.oracle.com)(PORT=1521)))
在以上情况中,监听器绑定值指定IP10.10.10.10的1527端口上同时也在所有接口的1521端口上。
由于RAC情况中对于监听器监听范围的要求,故在给出主机名的情况下配置工具netca等,总是会在配置文件中加上IP=FIRST语句保证监听器绑定到2a中返回的IP地址而非所有网络接口。
参考文档:
metalink : 文档 ID: 300729.1