当前位置:  数据库>oracle

Oracle RAC failover 测试(TFA方式)

    来源: 互联网  发布时间:2017-05-13

    本文导语: Oracle RAC 客户端故障转移(failover),当采用TFA方式时,对于已经建立连接的客户端,在连接的实例或节点出现故障时,客户端无需再次发出连接请求,仍然可以继续之前的数据库操作,此称之为透明故障转移。本文描述基于Oracle 10...

Oracle RAC 客户端故障转移(failover),当采用TFA方式时,对于已经建立连接的客户端,在连接的实例或节点出现故障时,客户端无需再次发出连接请求,仍然可以继续之前的数据库操作,此称之为透明故障转移。本文描述基于Oracle 10g rac,客户端TFA方式的故障转移并给出示例。

下面是一些关于这方面的基础参考链接:

有关负监听配置,载均衡(load balance)请参考

ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

Oracle RAC 客户端连接负载均衡(Load Balance)

Oracle RAC 服务器端连接负载均衡(Load Balance)

Oracle RAC 负载均衡测试(结合服务器端与客户端)

1、TFA描述   
  #下面关于TFA来自Oracle 的官方描述 ID 453293.1
  Transparent Application Failover (TAF) is a feature of the Oracle Call Interface (OCI) driver at client side.
  It enables the application to automatically reconnect to a database, if the database instance to which the connection is
  made fails. In this case, the active transactions roll back.
  Tnsnames Parameter: FAILOVER_MODE

    When an instance to which a connection is established fails or is shutdown, the connection on the client side becomes
  stale and would throw exceptions to the caller trying to use it. TAF enables the application to transparently reconnect
  to a preconfigured secondary instance creating a fresh connection, but identical to the connection that was established
  on the first original instance.
 
  #简单一点来说,就是说对于那些已经成功连接到特定实例的客户端,如果该实例或节点异常宕机,客户端会自动重新发出到剩余实例的连
  #接请求。使得客户端感觉不到它所连接的实例或节点已经出现故障,这个就称之为透明转移。但其间的活动事务将被回滚。
  #通过在客户端的tnsnames.ora中配置FAILOVER_MODE项实现TFA

2、服务器端、客户端的环境
  #服务器端环境,host信息
  oracle@bo2dbp:~> cat /etc/hosts |grep vip
  192.168.7.61  bo2dbp-vip.2gotrade.com    bo2dbp-vip
  192.168.7.62  bo2dbs-vip.2gotrade.com    bo2dbs-vip
 
  #服务器端环境,集群信息
  oracle@bo2dbp:~> ./crs_stat.sh
  Resource name                                Target    State           
  --------------                                ------    -----           
  ora.GOBO4.GOBO4A.inst                        OFFLINE    OFFLINE on bo2dbp  #此时节点1上的实例被关闭
  ora.GOBO4.GOBO4B.inst                        ONLINE    ONLINE on bo2dbs 
  ora.GOBO4.db                                  ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.ASM1.asm                          ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.LISTENER_BO2DBP.lsnr              ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr        ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.gsd                                ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.ons                                ONLINE    ONLINE on bo2dbp 
  ora.bo2dbp.vip                                ONLINE    ONLINE on bo2dbp 
  ora.bo2dbs.ASM2.asm                          ONLINE    ONLINE on bo2dbs 
  ora.bo2dbs.LISTENER_BO2DBS.lsnr              ONLINE    ONLINE on bo2dbs 
  ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr        ONLINE    ONLINE on bo2dbs 
  ora.bo2dbs.gsd                                ONLINE    ONLINE on bo2dbs 
  ora.bo2dbs.ons                                ONLINE    ONLINE on bo2dbs 
  ora.bo2dbs.vip                                ONLINE    ONLINE on bo2dbs 
  ora.ora10g.db                                ONLINE    ONLINE on bo2dbp

  #客户端环境
  robin@SZDB:~> cat /etc/issue
 
  Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel r (l).
 
  robin@SZDB:~> sqlplus -v
 
  SQL*Plus: Release 10.2.0.3.0 - Production
 
  #客户端tnsnames配置 
  GOBO4_TFA =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GOBO4)
      (FAILOVER_MODE =      #FAILOVER_MODE项参数
      (TYPE = session)
      (METHOD = basic)
      (RETRIES = 180
      (DELAY = 5)
      )
    )
  )
 
3、FAILOVER_MODE项分析
  FAILOVER_MODE项是实现TFA的主要配置内容,下面对其进行描述.
 
  METHOD: 用户定义何时创建到其实例的连接,有BASIC 和 PRECONNECT 两种可选值
    BASIC: 客户端通过地址列表成功建立连接后,即仅当客户端感知到节点故障时才创建到其他实例的连接
    PRECONNECT: 预连接模式,是在最初建立连接时就同时建立到所有实例的连接,当发生故障时,立刻就可以切换到其他链路上
   
    上述两种方式各有优劣,前者建立连接的开销相对较小,但failover时会产生延迟,而后者正好与前者相反
   
  TYPE: 用于定义发生故障时对完成的SQL 语句如何处理,其中有2种类型:session 和select
    select:使用select方式,Oracle net会跟踪事务期间的所有select语句,并跟踪每一个与当前select相关的游标已返回多少行给客户
      端。此时,假定select查询已返回500行,客户端当前连接的节点出现故障,Oracle Net自动建立连接到幸存的实例上并继续返回
      剩余的行数给客户端。假定总行数为1500,行,则1000行从剩余节点返回。
    session: 使用session方式,所有select查询相关的结果在重新建立新的连接后将全部丢失,需要重新发布select命令。
   
    上述两种方式适用于不同的情形,对于select方式,通常使用与OLAP数据库,而对于session方式则使用与OLTP数据库。因为select
    方式,Oracle 必须为每个session保存更多的内容,包括游标,用户上下文等,需要更多的资源。
   
    其次,两种方式期间所有未提交的DML事务将自动回滚且必须重启启动。alter session语句不会failover。
    临时对象不会failover也不能被重新启动。
   
  RETRIES: 表示重试的次数
  DELAY:表示重试的间隔时间


    
 
 

您可能感兴趣的文章:

  • [Oracle] Data Guard 之 浅析Switchover与Failover
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • linux下通过对文件读取方式查询oracle的版本信息
  • 参加Oracle认证的两种考试方式
  • Oracle解锁的方式介绍
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 如何实现将客户机上的word文件,以B/S方式最终存入oracle数据库?
  • Oracle数据库的四种启动方式
  • oracle中得到一条SQL语句的执行时间的两种方式
  • 基础知识:Oracle数据库的启动方式
  • oracle中修改表名的几种方式
  • Oracle数据库三种的封锁方式
  • asp.net使用ODP即oracle连接方式的的防注入登录验证程序
  • java中建立oracle连接的问题(oci和thin方式的区别、优劣?)
  • oracle 数据库的三种启动方式是什么?各有什么特点?
  • Linux下用静默方式删除oracle软件
  • JDBC 以thin方式连接Oracle时总报错
  • 静默方式(silent)安装Oracle软件
  • 给Oracle支招:改善Java的15种方式
  • 数据库连接方式汇总(sql与oracle等)
  • Oracle 表连接方式(内连接/外连接/自连接) 详解
  • Oracle 表三种连接方式使用介绍(sql优化)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 测试添加Oracle中Blob数据类型对象
  • Oracle融合中间件在Dell服务器上测试创世界纪录
  • oracle group by语句实例测试
  • 三招助你做好Oracle数据库备份测试
  • Oracle Dataguard备库失败与主库响应测试
  • oracle 使用递归的性能提示测试对比
  • oracle 11g 设置用户密码大小写敏感测试
  • oracle—SQL技巧之(一)连续记录查询sql案例测试
  • Oracle数据库异步调用基本原理及测试
  • oracle存储过程中return和exit区别概述及测试
  • 知识进阶 完全了解 Oracle 标签安全测试
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 虚拟机装Oracle R12与Oracle10g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 编程语言 iis7站长之家
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • ORACLE日期相关操作
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE数据库常用字段数据类型介绍
  • Linux系统下Oracle的启动与Oracle监听的启动
  • Oracle 12c的九大最新技术特性介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,