我第一次发贴,如果结贴率是 0.00%的话 请理解俺一下子  http://blog.csdn.net/snakeqi/archive/2009/01/14/3779846.aspx上面博客中有一段 RAC的配置(3节点rac) ###### RAC的配置(3节点rac) ###############################
ORALOCAL =
  (DESCRIPTION =
  (load_balance = yes)
  (failover = on)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521))   
    )
    (CONNECT_DATA =
        (SERVICE_NAME = oralocal)
        (SERVER = DEDICATED)
        (failover_mode=(type=select)(method=basic)(retries=20)(delay=20))
    )
  )
  
ORALOCAL_NODE1 =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
       )
       (CONNECT_DATA =
         (SERVICE_NAME = oralocal)
         (INSTANCE_NAME = oralocal_node1)
       )
   )
ORALOCAL_NODE2=
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
       )
       (CONNECT_DATA =
         (SERVICE_NAME = oralocal)
         (INSTANCE_NAME = oralocal_node2)
       )
   )
   ORALOCAL_NODE3 =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521))
       )
       (CONNECT_DATA =
         (SERVICE_NAME = oralocal)
         (INSTANCE_NAME = oralocal_node3)
       )
   )
  )
哪位帮我解译一下里面的句子都是什么意思!
我有一个这样的配置,
rms =
(DESCRIPTION =
(enable=broken)
(LOAD_BALANCE = yes)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.33.1)(PORT = 1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.33.2)(PORT = 1522))
(CONNECT_DATA =
  (SERVICE_NAME = nrms)
  (failover_mode=(type=select)(method=basic))
)
)
我想知道
(enable=broken)
(LOAD_BALANCE = yes)
(failover_mode=(type=select)(method=basic)
这三句是什么意思 type=select 是说我只有select 的权限么,没有update delete ???在上面博客中”RAC的配置(3节点rac)”中还配置了ORALOCAL_NODE1,ORALOCAL_NODE2,ORALOCAL_NODE3  那我的这个也要配置两个node么 ?
谢谢  万分感谢 

解决方案 »

  1.   

    楼主看到的这个tnsname实际上是rac环境下Failover的一种实现方式:TAF
    简单说一下各个参数的作用
    failover: Failover 控制开关(on/off),如果为off,不提供故障切换功能,但连接时会对address 列表进行依次尝试,直到找到可用为止.type: 两种类型:session /select Session: 提供session级别的故障切换。Select:提供select 级别的故障切换,切换过程对查询语句透明,但事物类处理需要回滚操作.method: 两种类型:basic/preconnect Basic:client同时只连接一个节点,故障切换时跳转到另外节
    点 Preconnect:需要与backup 同时使用,client 同时连接到主节点和backup节点.backup: 采用Preconnect 模式的备用连接配置.retries: 故障切换时重试次数.delay: 故障切换时重试间隔时间.如果楼主需要详细资料建议去搜一下TAF.另外,ORALOCAL_NODE1,ORALOCAL_NODE2,ORALOCAL_NODE3在他这里没有作用,只是提供每个节点的连接服务,你如果只想连接某个单节点,可以配置.但是如果TAF中使用了backup的话,必须提供一个backup服务.他这里没用,所以不需要.
      

  2.   

    客户端负载均衡及透明应用切换(TAF)这是客户端的一种功能,要在客户端的tnsnames.ora中设置本地服务命名相应的参数(LOAD_BALANCE=ON和FAILOVER=ON、FAILOVER_MODE参数)来启用客户端负载均衡和TAF功能。客户端负载均衡并不衡量RAC节点CPU的使用率,它只是随机的连接一个节点的监听。由于是随机连接,所以大体上做到连接数的负载均衡。在RAC环境中设置tnsnames.ora时,应使用SERVICE_NAME而不要使用SID,但是在使用RMAN进行备份和恢复时必须使用SID而不能使用SERVICE_NAME RAC双主模式时,客户端可以只使用一个本地服务命名(无预连接功能),或者使用两个本地服务命名(有预连接功能)具有客户端负载均衡及透明应用切换无预连接的tnsnames配置 RAC9I = (DEscrīptION =   (ADDRESS_LIST =     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))     (LOAD_BALANCE = ON)     (FAILOVER = ON)   )    (CONNECT_DATA =      (SERVICE_NAME = rac9i.xyf)      (FAILOVER_MODE =        (TYPE = select)        (METHOD = basic)        (RETRIES = 10)        (DELAY = 1)      )    )  ) 无客户端负载均衡有透明应用切换且有预连接的tnsnames配置 RAC9I1 = (DEscrīptION =   (ADDRESS_LIST =     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))     (LOAD_BALANCE = OFF)     (FAILOVER = ON)   )    (CONNECT_DATA =      (SERVICE_NAME = rac9i.xyf)      (INSTANCE_NAME = rac9i1)      (FAILOVER_MODE =        (BACKUP=RAC9I2)        (TYPE = select)        (METHOD = preconnect)      )    )  )  RAC9I2 = (DEscrīptION =   (ADDRESS_LIST =     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))     (LOAD_BALANCE = OFF)     (FAILOVER = ON)   )    (CONNECT_DATA =      (SERVICE_NAME = rac9i.xyf)      (INSTANCE_NAME = rac9i2)      (FAILOVER_MODE =        (BACKUP=RAC9I1)        (TYPE = select)        (METHOD = preconnect)      )    )  )  参数的含义:LOAD_BALANE    FAILOVER  ON             ON    客户端新建连接随机尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听,如没有一个监听可用,则返回错误信息   ON             OFF   客户端新建连接随机尝试ADDRESS_LIST中的任一监听,无论这个监听是否可用,如不可用直接返回错误。   OFF            ON    客户端新建连接按顺序尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听如没有一个监听可用,则返回错误信息   OFF            OFF   客户端新建连接仅连接ADDRESS_LIST中第一个监听,无论这个监听是否可用,如不可用直接返回错误。 对于已有连接的失败切换,首先要求FAILOVER = ON,并且设置了FAILOVER_MODE FAILOVER_MODE的子参数含义: TYPE:1)session---如果用户连接丢失,将创建一个新的会话连接到备用节点,用户的所有未提交的操作必须回滚,然后再次执行,SELECT操作也被中止.     2)select---如果用户连接丢失,将使用游标和之前的快照继续执行SELECT操作,叫做SQL接管,SQL接管能够无缝接管理的事务类型只有SELECT语句.其它的操作也必须要回滚然后再次执行.     3)none---客户端默认值,禁止SQL接管功能,主要用于测试的目地,在实际应用中TYPE应指定为session或者select METHOD:1)basic---仅仅在FAILOVER发生时才连接备用节点         2)preconnect---在用户连接到主节点时同时也在备用节点产生一个连接会话,设置预连接模式,能够快速接管SQL RETRIES:当前节点失败后,失败切换功能会尝试连接备用节点,这个值确定了尝试的次数,如果仅DELAY被指定,RETRIES默认为5 DELAY:两次尝试之间等待的秒数,如果仅指定RETRIES,DELAY默认为1秒 BACKUP:指定另外一个用于备份连接的网络服务名,当RAC设置为主次模式时,使用此参数,并且METHOD应该设为preconnect  RAC设置为主次模式时的tnsnames配置无客户端负载均衡(主次模式就不要客户端负载均衡了),有透明应用切换且有预连接的tnsnames配置RAC9I1 = (DEscrīptION =     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))(ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))     (LOAD_BALANCE = OFF)     (FAILOVER = ON)    (CONNECT_DATA =      (SERVICE_NAME = rac9i.xyf)      (INSTANCE_ROLE = PRIMARY)      (INSTANCE_NAME = rac9i1)      (FAILOVER_MODE =        (BACKUP=RAC9I2)        (TYPE = select)        (METHOD = preconnect)      )    )  )  RAC9I2 = (DEscrīptION =   (ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))(ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))     (LOAD_BALANCE = OFF)     (FAILOVER = ON)    (CONNECT_DATA =      (SERVICE_NAME = rac9i.xyf)      (INSTANCE_ROLE = SECONDARY)      (INSTANCE_NAME = rac9i2)      (FAILOVER_MODE =        (BACKUP=RAC9I1)        (TYPE = select)        (METHOD = preconnect)      )    )  ) 也可以设置为有透明应用切换但无预连接的模式,只要把上面的设置中的METHOD设置为basic。 与双主模式时的配置相比,多了INSTANCE_ROLE这样一个参数,当这个参数为SECONDARY时,这个本地服务命名不直接接收连接,只在主节点失败后才会接收连接。不直接接收连接,并不是指在客户端不能连通这个服务命名,只不过这个连接会被路由到主节点,次要次点并不真正有连接连上去