sqlnet.ora 参数tcp.validnode_checking尴尬

如果要对Oracle 进行IP Check合法性,就必须在Server 的sqlnet.ora中增加参数  tcp.validnode_checking=yes 。但参数tcp.validnode_checking  在sqlnet.ora 中设定后,如果要对Listener进行管理时出现下面错误:

[oracle@itc-test9 admin]more sqlnet.ora
tcp.validnode_checking=yes
#tcp.inited_nodes=(10.89.53.90)

[oracle@itc-test9 admin]lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-JUN-2009 10:04:53

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

Starting /disk/oracle/OCM/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /disk/oracle/OCM/network/admin/listener.ora
Log messages written to /disk/oracle/OCM/network/log/listener.log
Error listening on: (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12560: TNS:protocol adapter error
 TNS-00583: Valid node checking: unable to parse configuration parameters

让我们做另一个测试:
删掉sqlnet.ora 中的 tcp.validnode_checking=yes

[oracle@itc-test9 admin]more sqlnet.ora
#tcp.validnode_checking=yes
#tcp.inited_nodes=(10.89.53.90)

[oracle@itc-test9 admin]lsnrctl start ABC

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 12-JUN-2009 10:15:27

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

Starting /disk/oracle/OCM/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /disk/oracle/OCM/network/admin/listener.ora
Log messages written to /disk/oracle/OCM/network/log/abc.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.89.53.63)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.89.53.63)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     ABC
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                12-JUN-2009 10:15:27
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /disk/oracle/OCM/network/admin/listener.ora
Listener Log File         /disk/oracle/OCM/network/log/abc.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.89.53.63)(PORT=1521)))
Services Summary...
Service "study" has 1 instance(s).
  Instance "study", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

能正常启动Listener 。
那我们现在修改 sqlnet.ora 增加参数 tcp.validnode_checking=yes
Client 端一样能正常连接。

参数tcp.validnode_checking=yes  的作用是为了check sqlnet.ora 中
参数 TCP.INVITED_NODES 中的IP address 合法性的。
如果由一个IP Address 或 Hostname 不能正常访问,就会导致Listener 不能正常启动。

进场会有一些Client 的用户由于机器改变,或关机。这样的情况下数据库的Listener 就不能正常打开,虽然Oracle 数据库的Lisenter 不是经常的打开关闭但我认为这个参数设置比较尴尬,在Oracle 9i 大到 11.1.0.6都有这种情况。
我希望在11R2中能将这个参数去掉,确实没有什么大用处。

 

metalink 对这种情况给出下列解释 “This behavior. is by design.”,

我认为这个设计很不好,应该去掉。

如果你看到这个参数,你是否认为合理呢?

Changes

Applied the patch for security alert # 68 or if this is a new installation.  If some hostname changes have occurred on your network, this problem may also appear.

Cause

There is an invalid or unreachable hostname in the TCP.INVITED_NODES list in the sqlnet.ora file.

Oracle no longer  allows  the listener to startup if an invalid hostname or ip address is specified in the invited_nodes list.  The listener will not start if any of the hosts or ip addresses are unreachable.   The only solution to this issue is to ensure that all the hostnames and ip addresses in the invited nodes list are reachable from the host where the listener is starting.

Solution

This behavior. is by design. 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/34596/viewspace-605999/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/34596/viewspace-605999/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值