对scan ip的理解

参考:http://www.luocs.com/archives/281.html

http://www.oracle.com/technetwork/products/clustering/overview/scan-129069.pdf


这些天做11g的RAC实验,才发现oracle 11g的scan ip这个概念,当时在安装的时候,直接在host文件中加入了一条scan对应的解析,之后安装成功。之后才在网上搜了很多资料,自认为对scan ip有了一定的认识,只是身边每个讨论的人,也许有错误的地方,请看到的人不吝指正。

scan全程为simple client access name的缩写,并不是英文扫描的意思。这个功能是在oracle 11gR2版本才有的。

scan的作用

这个功能的作用是:在服务器端和客户端之间增加了一层虚拟接口,原本客户端的tnsnames中为了实现负载均衡,需要同时注册多个节点服务器的侦听信息,这样,当服务器端增加或删除节点的时候,相应的服务器端的tnsnames文件就要做相应的维护,比如服务器端增加节点,要在客户端的tnsnames中增加该节点的侦听信息,删除节点则要在客户端的tnsnames中删除该节点的侦听信息。这是在11gR2之前的负载均衡实现方式。

scan与vip的区别

这种方式看起来挺好,但是,如果对于大型局域网,客户端有成百上千个,而且分布在各个地方,原本简单的事就不简单了。scan ip就是针对这一问题出现的,它是在服务器端和客户端之间建立一层虚拟访问层,客户端的tnsnames中只有scan ip的侦听信息,即客户端直接访问scan ip而不直接访问真实的服务器ip。而scan ip是浮动的,它和节点本身的vip的区别就在于,vip的监听程序是跟instance绑定的,设置vip的作用是,当节点宕机之后,vip会自动的跳到正常节点上,但是vip对应的监听程序并不会跳转,本来,如果不适用vip的话,原本连接到宕机节点上的程序就会得不到服务器回应,然后等待连接超时的时候走完,客户端再重试,重试一定次数仍然失败才会转到其他节点上,这个过程就相当耗时了。若果使用vip的话,节点宕机之后vip跳到正常节点上,原本访问宕机节点的程序请求就发送到了vip跳转的节点,该正常节点收到连接请求后直接给该端点返回错误信息,告知它原本访问的节点已经坏掉了,这是客户端就会使用tns中的其他地址。这个时间相对于不适用vip的时间要小很多。

而scan ip机制是ip跟对应的监听程序一起浮动,如果a节点宕机,则原本停留在该节点的scan ip和监听程序会一起跳转到其他可用节点上。因此对于客户端而言,就不需要更改原本的配置信息,只需要一直访问scan ip就可以正常使用数据库,至于scan ip跟真实的节点的对应关系,则是scan ip这层要关心和实现的

scan的实现方式

scan ip有两种实现方式,一种是DNS,一种是oracle自身提供的GNS(grid Naming Service)。其中GNS是针对DHCP方式的,即服务器端的vip和scan ip是动态分派的,具体什么的都没有研究,我只是看了DNS的实现方式。
因为host文件的域名解析方式不能实现一个域名和多个ip的对应,如果在host文件中有一个域名对应多个不同ip的解析行,则在域名解析的时候会只有第一行起作用。而DNS服务器却可以实现一个域名与多个ip的对应。并且DNS服务器使用 round-robin(轮叫调度)的算法进行多个ip之间的调度。
比如域名与ip的对应为
scan.scan.com     192.168.1.221
                          192.168.1.222   
                           19 2.168.1.223
则cmd下使用nslookup  scan.scan.com时,则连续多次解析出的结果的第一个ip会依次为221,222,223。从这个层面上看,也是实现了一定程度的负载均衡。
此外,oracle规定scan ip最多有3个,最少有1个。

DNS服务器的设置

首先说一下dns服务器的位置,dns服务器常理上位于独立于节点服务器的一台单独服务器上。它跟oracle服务器几乎没有联系,主要对所有的客户端提供域名解析服务。因此,所有客户端的DNS服务器地址需要是这台服务器的ip。但是,如果没有单独的服务器,也可以把DNS服务安装在节点上,不过,因为如果恰好DNS服务所在节点坏掉的话,会直接影响数据库的访问,所以,最好在所有的节点上都安装上DNS服务。
我是在window server  2003R2上做的dns,建好DNS服务器后,新建一个域名(这个域可以实际不存在),在这个域下新建主机,例如建立主机名scan,然后输入ip地址,依次建立三个同样主机名不同ip的对应DNS条目即可。
建好之后可以使用nslookup测试一下。

一些疑惑的点

我的实验环境为两个节点,使用了DNS方式实现解析。因此,一个scan ip在一个节点,另外两个scan ip在另外一个节点上,但如果服务器端有超过3个节点,那这个scan ip不够分啊,是不是有的节点就不在工作了,不再参与负载均衡了,答案肯定是否定的,但那些没有分到scan ip的节点是怎么工作的呢?这个问题曾困扰了我一段时间。
现在我的理解是:
虽然scan ip浮动到某个节点上,但是并不是跟它所在的节点的实例绑定的,客户端访问域名解析出来的scan ip,则这个访问请求会在scan ip所在节点由scan层根据负载均衡机制进行处理,处理结果会确定这个请求被分配到那个vip,这个vip才是确定节点的关键。
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Modbus扫描是指通过扫描仪对Modbus通信网络进行测试和诊断,以确认通信网络是否正常工作并查找网络中可能存在的错误。在Modbus通信中,扫描仪会向设备发送不同类型的Modbus指令,例如读取保持寄存器或写入线圈状态指令。通过检查仪器对指令响应的时间以及接收到的响应数据,可以确定通信网络的稳定性和可靠性。扫描也可以用于确定网络中设备的地址或检查系统中的设备配置。使用Modbus扫描可帮助诊断和故障排除问题,提高通信网络的可靠性和性能。 ### 回答2: Modbus scan是指对Modbus通信协议的扫描和分析,它可以用于测试设备的Modbus通信功能,诊断通信故障以及监测Modbus通信数据等。 在Modbus通信协议中,Modbus master设备向Modbus slave设备发送请求并接收响应。Modbus scan工具可以模拟Modbus master设备的请求,向Modbus slave设备发送Modbus请求数据,并分析接收到的响应数据,以此来分析设备是否正常响应Modbus通信请求。 Modbus scan软件通常具有以下功能: 1. 扫描Modbus从机设备:Modbus scan工具可以扫描网络上的Modbus从机设备,查找设备地址,识别设备类型等。 2. 探测Modbus设备功能:Modbus scan工具可以向Modbus从机发送不同类型的请求,例如读取线圈状态、读取离散输入、读取保持寄存器、读取输入寄存器等,以验证Modbus设备功能是否正常。 3. 诊断Modbus通信故障:当Modbus从机设备不能正常响应Modbus请求时,Modbus scan工具可以通过分析请求数据、响应数据和Modbus通信协议的规范性等方面来诊断通信故障原因。 4. 监测Modbus通信数据:Modbus scan工具可以实时监测Modbus通信数据,包括读取和写入数据,以此来监测Modbus设备的运行状态。同时,通过对Modbus通信数据进行分析和比较,可以发现设备运行中的问题,如频繁的写入错误等。 总之,Modbus scan工具是一个必不可少的Modbus通信协议分析工具,它可以有效帮助工程师们快速诊断和解决Modbus通信故障问题,提高设备的可靠性和稳定性。 ### 回答3: Modbus扫描是指使用Modbus协议扫描网络上所有Modbus设备和节点的活动。Modbus是一种通信协议,旨在使不同类型的设备和系统能够以一种标准的方式进行通信。该协议可用于连接许多设备,如PLC(可编程逻辑控制器)、传感器和仪表等。 Modbus扫描器可以帮助管理员快速扫描网络上的Modbus设备和节点,包括IP地址、设备类型、寄存器映射和值等信息。这样有助于维护人员更好地理解整个网络的拓扑结构和设备状态,并且能够快速发现故障。 Modbus扫描器还可以进行更深入的扫描,例如分析Modbus通信的历史记录和流量等,帮助管理员更好地理解网络上的通信行为和设备之间的关系。此外,扫描器还可以检测与安全相关的问题,例如未授权的访问和不安全的信令等,以帮助管理人员采取必要的措施保护网络安全。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值