tcp.validnode_checking踩過的坑


對Oracle 檢查ip合法性,就必須在服務器端的sqlnet.ora文件中設置如下參數

TCP.INVITED_NODES=(10.0.0.36,10.0.0.1,10.0.0.35)  
TCP.EXCLUDED_NODES=(10.0.0.2)  

啟動監聽出現如下錯誤

 

[oracle@oracle11 admin]$ lsnrctl status  
  
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-MAR-2018 18:32:13  
  
Copyright (c) 1991, 2009, Oracle.  All rights reserved.  
  
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))  
TNS-12541: TNS:no listener  
 TNS-12560: TNS:protocol adapter error  
  TNS-00511: No listener  
   Linux Error: 111: Connection refused

      錯誤輸出並沒有打印詳細的信息,從lisenter.ora,tnsnames.ora入手,但沒有發現文件是錯誤的。最后檢查sqlnet.ora,發現TCP.INVITED_NODES參數有如下約束是官方文檔沒有給出的

 

tcp.invited_nodes需要滿足如下條件才可成功啟動監聽

1、需要設置參數TCP.VALIDNODE_CHECKING為YES才能激活該特性。

2、tcp.invited_nodes的值中一定要包括本機地址(127.0.0.1 / 10.0.0.36)或localhost,因為監聽需要通過本機ip去訪問監聽,一旦禁止lsnrct將不能啟動或停止監聽。

3、不能設置ip段和通配符。

4、此方式只適合tcp/ip協議。

5、此方式是通過監聽限制白名單的。

6、針對的是ip地址而不是其他(如用戶名等)。

7、此配置適用於9i以上版本。本次踩坑是oracle11gr2。

8、修改配置后需要重啟監聽才可生效。

TCP.INVITED_NODES=(10.0.0.36,10.0.0.1)

      此時在啟動監聽不會出現報錯了。而對與TCP.EXCLUDED_NODES參數並沒有以上的限制,需要將禁止訪問的ip傳參即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM