What is TCP_VALIDNODE_CHECKING and How to Use It (Doc ID 462933.1)
TCP.VALIDNODE_CHECKING and TCP.INVITED_NODES With Oracle’s Data Guard? (Doc ID 1968655.1)

由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使用数据库白名单功能!

一般单实例数据库启动白名单只需要在sqlnet.ora中添加以下内容即可:

   TCP.VALIDNODE_CHECKING=yes  (开启IP限制功能),
   TCP.INVITED_NODES=(192.168.1.103,ip2,ip3,..,..本地IP..)--白名单,必须本地IP,否则监听会起不来,
   TCP.EXCLUDED_NODES=(192.168.1.102) --黑名单

由于本环境为RAC环境,操作稍有不同。
1 ORACLE用户下的$ORACLE_HOME/NETWORK/ADMIN目录下没有sqlnet.ora文件,必须使用grid用户登录进入$ORACLE_HOME/NETWORK/ADMIN下的sqlnet.ora文件,添加修改。

2 添加白名单时必须添加本地IP,因为是RAC环境,必须把连个节的真实IP,私有IP,VIP,SCAN IP全部添加进白名单。

3 启动时不能像单机一样使用lsnrctl reload,需使用srvctl stop listener -n 节点1srvctl start listener -n 节点1,可以一个节点修改好后,再修改另一个节点,防止影响业务。

srvctl start listener -n node1
srvctl stop listener -n node2
srvctl stop listener -n node [-l listenername]

今天发现一个SRVCTL命令的小bug:
如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。搜索了一下metalink,没有发现关于这个问题的说明。而且,这个问题只在关闭监听时出现,启动监听则没有问题。svrctl显然只记录它自己的操作,而不去检查listener真正的状态。

windows下配置白名单sqlnet.ora中一定要写自己的主机名!!!或者去看listener.ora中的host写的是啥

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐