热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

RACCRSResource之VIP

RACCRSResource之VIP每一个node都有一个VIP,VIP就是我们访问的IP,如果一个nodedown了,他的VIP地址会根据算法浮动到其他的某个node上,www.2cto.com这样在用户访问看来,还是正常访问的...SyntaxHighlighter.all(

RAC CRS Resource之VIP
 
每一个node都有一个VIP,VIP就是我们访问的IP,如果一个node down了,他的VIP地址会根据算法浮动到其他的某个node上,  www.2cto.com  
        这样在用户访问看来,还是正常访问的
        
        我认为vip最大作用是用于故障切换
      
        当a节点失败后,vip会飘移到b节点,但是b节点并没有对这个vip地址进行监听,这样客户端就能迅速知道a节点宕了,而切换到b节点
      
        如果采用传统的TCP超时那会等很久
      
        如果要实现failover,那在tnsnames.ora里面要有相应的配置
        
        ㈠ TCP/IP协议栈超时
      
          从逻辑上看TCP/IP的协议栈是同层之间进行通信
        
          传输层的TCP协议,提供数据传送的完整性服务。也就是,接收端的传输层收到数据包后,必须给发送端的传输层返回一个确认消息。
          如果指定的时间内,发送端没有收到这个确认消息,发送端会认为这个包丢失,就会重发;如果几次重发都不能得到响应,
          发送端的传输层就知道网络出现了问题,终止了发送尝试,并通知应用层。
          比如,user_A用sqlplus连接oracle server,则sqlplus就会抛出连接错误
          
          客户端的连接请求必须等到传输层的超时,才能获知数据库服务器或者监听出现了问题
          
          假设有一个2节点的RAC环境,VIP1 VIP2,现node 2发生故障:
          ① CRS在检测到node 2异常后,触发clusterware重构,踢出node 2
           ② VIP2漂移到node 1  www.2cto.com  
           ③ 用户对VIP2的连接请求会被网络层路由到node 1
           ④ 因为node 1拥有VIP2,所以数据包会顺利的通过网络接入层、网络层、传输层
          ⑤ 但是node 1上的监听器只监听VIP1和public IP,没有监听VIP2,也就是,应用层没有对应的程序接收这个包
          ⑥ 客户端能够立刻收到这个错误,然后客服端就会重新发起向VIP1的连接
 
        ㈡ VIP漂移问题
         
           VIP只有在系统故障时才漂移
           
           VIP漂移出去不回来
           
           可以使用crs_relocate把vip"拉"回来
           
           这是一个feature,VIP不自动failover回来是为了防止二次brown out
      
         但是10.2.0.3是一个例外,这个参数被默认打开了,其他的版本默认都是关闭的。
           ora_racg_vip_failback=0
        
       我们可以通过v$session.failed_over 是YES表示漂移过、或者crsd.log会有输出
           
           vip 漂移后 listener 并不会自动注册
           
           只是降低连接时 failover 的时间长度而已
           
           漂移后的目的是在进行连接时更快的返回错误, 而不是tns 超时.
 
        ㈢ VIP配置
      
           hosts文件中vip的名称
           
           建议采取以下命名hostname-vip,hostname-priv
           
            名字最好不要用下划线。中划线没事
 
        ㈣ TAF(Transparent Application Failover) 
        
            Oracle的TAF实际是建立在VIP技术上的
           如果你希望透明应用程序故障切换,必须要配置 TAF 应用策略。
           如果配置了TAF策略,客户端虽然接受到错误,但通过 TAF 的配置就会马上尝试下一个node的连接,
           这样对于应用来说,实现了真正的透明故障切换,同时也减少了客户端用户等待时间。
           如果不使用vip连接,当一个节点实效后,vip1也会自动切换到node2,
           但是这一切已经连接上的客户端并不能马上知道节点一已经实效,
           因此已经连接到实效节点的客户端会不断的尝试连接,直到连接超时等才会尝试连接tnsname 中的下一个地址,
           所以这个切换会花费很长时间,客户端才能切换到node2.
      
        ㈤ IP和VIP区别
        
            ① VIP是浮动的,而IP是固定的
            ② IP利用传输层超时,而VIP利用应用层立即响应
            ③ IP让未连上的连上,而VIP让已连上的继续连
 

推荐阅读
author-avatar
路边一烧饼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有