现在有两台数据库服务器(oracle10g)要做成RAC集群假设:服一的IP是 192.168.0.1
      服二的IP是 192.168.0.2请问:可不可以把这两台服务的IP抽象成一个公共 IP (192.168.0.3) ??也就是程序访问的时候只要访问 192.168.0.3,对服一服二的故障切换透明请帮忙解答,谢谢!

解决方案 »

  1.   

    程序访问的时候是通过tnsnames.ora文件中配置的服务,由这里进行切换设置
    rac的vip不能成一个
    而且如果一个节点故障,vip会自动到另一个节点,也就是说一个节点出现俩vip
      

  2.   

    好像不行,这个问题,我以前也琢磨了很久,也是没有找到合适的方法,不过对于应用来说也没有非常强调这点。所以都是通过tnsname来配置多个ip或者是在jdbc里用desciption描述的方式进行访问。顶一下,同期待解决方案。
      

  3.   

    谢谢两位的解答是的,也找了相关的资料还没看到过可以实现的,都是通过rac的vip来配置的连接RAC的jdbc url样板
    jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = 服务名)))
    期待更好的解决方案
      

  4.   

    这个和网络设备双机的HSRP或VRRP不一样的,不要想做成一个公共IP,RAC虽然也会虚拟出VIP地址,但每一个RAC都会虚拟出一个来,然后在nsname中配置多个地址(就是虚拟出来的IP,有几个配置几个),剩下的ORACLE来做。我是这样理解的,不知道对不对。
      

  5.   

    不可以虚拟成一个.其实VIP就是这个目的了.你还要虚拟的目地是?如果是failover,那么你可以好你的client和server的配置就ZOK呀.
      

  6.   


    好像这样的,所以jdbc连接url要配置多个IP连接
      

  7.   


    我的虚拟的目地是:对于我的程序来说是一个固定的IP,因为程序的jdbc url已经写好(打包了)只连接一个IP