关于RAC中监听配置IP=FIRST的说明

本文详细介绍了Oracle数据库监听器如何绑定IP地址的过程,包括当指定主机名时监听器的绑定行为,并提供了具体的步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为RAC自动配置的监听器(listener)一般都可以看到使用了IP=FIRST选项,以使得监听在所给出主机名的相关ip端点。默认情况下不使用IP=FIRST选项,监听器总是在所有该主机的网络接口上监听(listen)。 从8i开始,监听器在绑定Ip地址的方式已经改变。一般的规则是“在指定主机上监听所有端口(listen on all interfaces if a hostname is specified)。然而这仅在大多数情况下准确,在某些特定情况监听器可能并非如此表现。 你可能需要强制监听器仅绑定到特定的IP地址(即便在指定主机名的情况下),通过在监听配置文件LISTENER.ORA中配置IP=FIRST语句。 由于监听绑定端点对于数据库实例注册到监听尤为重要,所以我们有必要了解监听器具体如何决定绑定到TCP端点(endpoint)的算法。 常规算法 你可以尝试使用以下模式解释监听器如何绑定到TCP协议地址的表现: (1) 如果你提供一个IP 地址,则监听器始终在该IP地址上监听。 (2) 若你提供一个主机名: (a) Oracle 对 gethostbyname()函数 输入该主机名,可能返回多个IP地址。 gethostname 库函数会查询DNS服务器,/etc/hosts配置文件,和NIS服务以及其他方式,基于系统实际配置。具体如何工作依赖于操作系统类型,但一般来说/etc/host.conf,/etc/nsswitch.conf 和/etc/resolv.conf配置文件在UNIX平台上指导过程。’ 你可以同过ping工具找出相关的IP(如例:ping <hostname> 活着 ping -s <hostname> 即可以看到主机名相关的IP)。 不要使用host,nslookup 或dig 工具,以上工具仅查询DNS服务可能返回错误结果。

(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值