ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sqlnet.ora 参数tcp.validnode_checking尴尬

sqlnet.ora 参数tcp.validnode_checking尴尬

原创 Linux操作系统 作者:myhuaer 时间:2009-06-12 10:49:50 0 删除 编辑

如果要对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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-09-11

  • 博文量
    211
  • 访问量
    625732