客户端到数据库scan ip防火墙通却报错ORA-12170

6 篇文章 0 订阅

开发尝试从客户端连接到数据库报错ORA-12170,数据库一直正常运行、连接串也正确。一般该报错与防火墙拦截有关,但开发反馈到scan ip防火墙策略已开通,telnet也正常。

先说解决方法,先把问题处理了再看原因:不仅要开通到scan ip的防火墙策略,还需要开通到vip的防火墙策略。

 

一、 RAC的scan ip与vip

为什么还需要开通vip的防火墙策略,可以参考下图

https://orainternals.files.wordpress.com/2012/04/2012_326_riyaj_scan_vip_haip_doc.pdf

11.2开始,SCAN  IP作为一个新增IP出现,SCAN  IP其实是oracle在客户端与数据库之间新加的一个连接层。当有客户端访问时,连接到SCAN IP LISTENER,SCAN IP LISTENER接收到连接请求时,会根据LBA算法将该客户端的连接请求转发给对应的instance上的VIP LISTENER,从而完成整个客户端与服务器的连接过程。

简化如下:client -> scan listener -> local listener -> local instance

也可以把scan理解为一个虚拟主机名,它对应的是整个RAC集群。客户端主机只需通过scan name即可访问数据库集群的任意节点。当然访问的节点是随机的,oracle强烈建议通过DNS Server的round robin模式配置解析SCAN,实现负载均衡(即轮换连接SCAN对应的IP地址),这有点类似通过vip和listener loadbalance配置实现负载均衡的原理。

 

二、 有了vip为什么还要增加SCAN IP呢?

在11.2之前,client连接数据库时要用vip,假如你的oracle cluster有4个节点,那么客户端的tnsnames.ora中就要对应有四个主机vip的一个连接串,如果cluster增加了节点,那么每个连接数据库的客户端都需要修改tnsnames.ora。

11.2开始,引入了scan ip,顾名思义 single client access name ,简单客户端连接名。这个名称在整个公司网络内应该唯一,并且在DNS中可以解析为三个ip地址,客户端连接的时候只需要用这个名称连接即可。scan ip主要是为了简化客户端连接,假如你的oracle 集群有20个节点,客户端连接的时候需要配置20个vip,如果用scan,只需要一个scan name就行了,剩下的事情,scan帮你做了。

 

参考

https://blog.51cto.com/xjsunjie/1547128

https://rajeevjhaoracle.wordpress.com/2014/05/17/what-is-scan-in-rac/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值