最近在对数据库做了物理介质层面的切换后,在新的服务器上发现配置的监听器中监听的地址并非是本机的ip地址,但客户端仍然可以正常连接。细查发现客户端通过虚拟的一个ip连接到本机数据库,本机是配置了虚拟ip的。
为什么在监听器中没有配置监听本机ip,数据库仍然可连接呢?
查询发现,从8i开始,监听器在绑定Ip地址的方式已经改变。一般的规则是“在指定主机上监听所有端口(listen on all interfaces if a hostname is specified)。然而这仅在大多数情况下准确,在某些特定情况监听器可能并非如此表现,默认情况下不使用IP=FIRST选项,监听器总是在所有该主机的网络接口上监听。
若果需要让监听器只监听本机的某个ip地址,你可能需要强制监听器仅绑定到特定的IP地址(即便在指定主机名的情况下),通过在监听配置文件LISTENER.ORA中配置IP=FIRST语句
本人rac中的监听配置如下:
SID_LIST_LISTENER_RAC01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/ora10g/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER_RAC01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.150.4.231)(PORT = 1521)(IP = FIRST))
)
)
好记星不如烂笔头,come on
中一贝
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28612416/viewspace-769263/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28612416/viewspace-769263/