Oracle RAC failover 测试(Server TAF方式)

    Oracle RAC中,除了基于客户端的TAF方式之外,还有基于服务器端的TAF方式,可以把服务端的TAF方式看作是客户端TAF方式的一个升级版吧。服务器端的TAF,当然是需要在服务器端进行配置了,这个是通过Service来完成的。本文主要描述Oracle 10g rac 下通过service方式配置服务器端的TAF。

  下面是一些关于这方面的基础参考链接:
  有关负监听配置,载均衡(load balance)请参考
    ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
    ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
    Oracle RAC 客户端连接负载均衡(Load Balance)    Oracle RAC 服务器端连接负载均衡(Load Balance)
    Oracle RAC 负载均衡测试(结合服务器端与客户端)
    
  有关Oracle RAC failover 连接时故障转移请参考
    Oracle RAC failover 测试(连接时故障转移)    Oracle RAC failover 测试(TAF方式)    
  有关Services的创建请参考
    Services in Oracle Database 10g
    再说 Oracle RAC services

1、服务器端、客户端的环境
  #服务器端环境,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                         ONLINE     ONLINE on bo2dbp
  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 =
    (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 = TAF)  #注意我们客户端的SERVICE_NAME,我们设置为TAF
      )
    )

2、在服务器端配置service
  配置service有多种方式,如dbca,oem,srvctl命令行。下面直接以命令行方式配置
  关于什么是service以及如何使用srvctl命令行创建service,请参考: http://blog.csdn.net/robinson_0612/article/details/8124232
  oracle@bo2dbp:~> srvctl add service -d GOBO4 -s TAF -r GOBO4A -a GOBO4B -P basic
  oracle@bo2dbp:~> srvctl start service -d GOBO4 -s TAF
  oracle@bo2dbp:~> ./crs_stat.sh | grep TAF
  ora.GOBO4.TAF.GOBO4A.srv                      ONLINE     ONLINE on bo2dbp
  ora.GOBO4.TAF.cs                              ONLINE     ONLINE on bo2dbp
  oracle@bo2dbp:~> srvctl config service -d GOBO4 -a
  TAF PREF: GOBO4A AVAIL: GOBO4B TAF: basic
  oracle@bo2dbp:~> export ORACLE_SID=GOBO4A
  oracle@bo2dbp:~> sqlplus / as sysdba

  SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 17 14:55:02 2012

  Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

  Connected to:
  Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
  With the Real Application Clusters option

  SQL> show parameter service

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ------------------------------
  service_names                        string      SYS$SYS.KUPC$S_1_2012102317304
                                                   4.GOBO4, SYS$SYS.KUPC$C_1_2012
                                                   1023173044.GOBO4, GOBO4, TAF

  SQL> begin
    2  dbms_service.modify_service(
    3  service_name=>'TAF',
    4  failover_method =>dbms_service.failover_method_basic,
    5  failover_type =>dbms_service.failover_type_select,
    6  failover_retries =>180,
    7  failover_delay=>5);
    8  end;
    9  /

  PL/SQL procedure successfully completed.

  SQL> select name,failover_method,failover_type,goal,clb_goal from dba_services
    2  where name='TAF';

  NAME                 FAILOVER_METHOD      FAILOVER_TYPE   GOAL         CLB_G
  -------------------- -------------------- --------------- ------------ -----
  TAF                  BASIC                SELECT                       LONG                                                   

  SQL> ho lsnrctl status
    ..........
  Service "TAF" has 1 instance(s).
    Instance "GOBO4A", status READY, has 2 handler(s) for this service...
  The command completed successfully

3、测试服务器端TAF
  robin@SZDB:~> sqlplus fail_over/fail@gobo4
  fail_over@GOBO4> get verify.sql
    1  REM the following query is for TAF connection verification
    2  col sid format 99999
    3  col serial# format 9999999
    4  col failover_type format a13
    5  col failover_method format a15
    6  col failed_over format a11
    7  Prompt
    8  Prompt Failover status for current user
    9  Prompt ============================================
   10  SELECT   sid,
   11   serial#,
   12   failover_type,
   13   failover_method,
   14   failed_over
   15   FROM   v$session
   16   WHERE   username = 'FAIL_OVER';
   17  REM the following query is for load balancing verification
   18  col host_name format a20
   19  Prompt
   20  Prompt Current instance name and host name
   21  Prompt ========================================
   22* SELECT   instance_name,host_name FROM v$instance;
   23  

  #下面的连接查询中表明客户端当前连接到了节点bo2dbp,其实例名为GOBO4A
  fail_over@GOBO4> @verify        

  Failover status for current user
  ============================================

     SID  SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
  ------ -------- ------------- --------------- -----------
    1073       48 SELECT        BASIC           NO

  Current instance name and host name
  ========================================

  INSTANCE_NAME    HOST_NAME
  ---------------- --------------------
  GOBO4A           bo2dbp  

  #此时停止节点bo2dbp
  oracle@bo2dbp:~> srvctl stop instance -d GOBO4 -i GOBO4A
  #查看停止节点bo2dbp即实例GOBO4A后的结果
  oracle@bo2dbp:~> ./crs_stat.sh |grep inst
  ora.GOBO4.GOBO4A.inst                         OFFLINE    OFFLINE
  ora.GOBO4.GOBO4B.inst                         ONLINE     ONLINE on bo2dbs  

  #此时回到客户端再次执行查询,FAILED_OVER的值已经变成YES,即表明当前的session为failover过来的
  #同时实例名和节点名也发生了变化
  fail_over@GOBO4> set timing on;
  fail_over@GOBO4> @verify

  Failover status for current user
  ============================================

     SID  SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
  ------ -------- ------------- --------------- -----------
    1082      396 SELECT        BASIC           YES

  Elapsed: 00:00:04.19

  Current instance name and host name
  ========================================

  INSTANCE_NAME    HOST_NAME
  ---------------- --------------------
  GOBO4B           bo2dbs

  Elapsed: 00:00:00.01

4、小结
  a、服务器端的TAF方式的failover通过在服务器端配置service来完成
  b、服务器端的TAF方式与客户端的TAF方式产生同样的效果
  b、一旦在服务端配置了基于服务器端的TAF,客户端再无需通过在客户端添加FAILOVER_MODE项
  c、该方式简化客户端配置,通过集中统一管理service实现failover

更多参考

有关Oracle RAC请参考
     使用crs_setperm修改RAC资源的所有者及权限     使用crs_profile管理RAC资源配置文件     RAC 数据库的启动与关闭     再说 Oracle RAC services     Services in Oracle Database 10g     Migrate datbase from single instance to Oracle RAC     Oracle RAC 连接到指定实例     Oracle RAC 负载均衡测试(结合服务器端与客户端)     Oracle RAC 服务器端连接负载均衡(Load Balance)     Oracle RAC 客户端连接负载均衡(Load Balance)     ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
     ORACLE RAC 监听配置 (listener.ora tnsnames.ora)     配置 RAC 负载均衡与故障转移     CRS-1006 , CRS-0215 故障一例 
     基于Linux (RHEL 5.5) 安装Oracle 10g RAC
     使用 runcluvfy 校验Oracle RAC安装环境

有关Oracle 网络配置相关基础以及概念性的问题请参考:
     配置非默认端口的动态服务注册
     配置sqlnet.ora限制IP访问Oracle     Oracle 监听器日志配置与管理
     设置 Oracle 监听器密码(LISTENER)     配置ORACLE 客户端连接到数据库

有关基于用户管理的备份和备份恢复的概念请参考
     Oracle 冷备份     Oracle 热备份     Oracle 备份恢复概念     Oracle 实例恢复     Oracle 基于用户管理恢复的处理     SYSTEM 表空间管理及备份恢复     SYSAUX表空间管理及恢复     Oracle 基于备份控制文件的恢复(unsing backup controlfile)

有关RMAN的备份恢复与管理请参考
     RMAN 概述及其体系结构     RMAN 配置、监控与管理     RMAN 备份详解     RMAN 还原与恢复     RMAN catalog 的创建和使用     基于catalog 创建RMAN存储脚本     基于catalog 的RMAN 备份与恢复     RMAN 备份路径困惑     使用RMAN实现异机备份恢复(WIN平台)     使用RMAN迁移文件系统数据库到ASM     linux 下RMAN备份shell脚本     使用RMAN迁移数据库到异机

有关ORACLE体系结构请参考
     Oracle 表空间与数据文件     Oracle 密码文件     Oracle 参数文件     Oracle 联机重做日志文件(ONLINE LOG FILE)     Oracle 控制文件(CONTROLFILE)     Oracle 归档日志     Oracle 回滚(ROLLBACK)和撤销(UNDO)     Oracle 数据库实例启动关闭过程     Oracle 10g SGA 的自动化管理     Oracle 实例和Oracle数据库(Oracle体系结构) 

时间: 2024-08-04 04:26:58

Oracle RAC failover 测试(Server TAF方式)的相关文章

Oracle RAC failover 测试(TAF方式)

    Oracle RAC 客户端故障转移(failover),当采用TAF方式时,对于已经建立连接的客户端,在连接的实例或节点出现故障时,客户端无需再次发出连接请求,仍然可以继续之前的数据库操作,此称之为透明故障转移.本文描述基于Oracle 10g rac,客户端TAF方式的故障转移并给出示例.   下面是一些关于这方面的基础参考链接:  有关负监听配置,载均衡(load balance)以及Oracle service请参考    ORACLE RAC 监听配置 (listener.or

Oracle RAC failover 测试(连接时故障转移)

    Oracle RAC 集群最突出的表现就是高可用性,这些内容主要包括load balance以及failover,通过这些技术使得单点故障不影响客户端端应用程序对数据库的正常访问,以及通过创建service实现节点间负载均衡.本文主要描述Oracle 10g rac环境下的Oracle failover测试.    下面是一些关于这方面的基础参考或相关链接:  有关负监听配置,载均衡(load balance)以及Oracle service请参考    ORACLE RAC 监听配置

Oracle RAC的failover测试简介

Oracle RAC中,除了基于客户端的TAF方式之外,还有基于服务器端的TAF方式,可以把服务端的TAF方式看作是客户端TAF方式的一个升级版吧.服务器端的TAF,当然是需要在服务器端进行配置了,这个是通过Service来完成的.本文主要描述Oracle 10g rac 下通过service方式配置服务器端的TAF. 1.服务器端.客户端的环境 #服务器端环境,host信息 oracle@bo2dbp:~> cat /etc/hosts |grep vip 192.168.7.61   bo2

详解Oracle RAC的Failover

Oracle  RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉不到这种切换. Oracle 10g RAC 的Failover 可以分为3种: 1. Client-Side Connect time Failover 2. TAF 3. Service-Side TAF 注意事

Vmware server 下为Oracle RAC 添加共享磁盘

    在VMware下的Oracle RAC 环境中,对于共享存储不够或者需要增加新的共享磁盘来配置ocr或votingdisk的多路镜像,我们可以通过vmware下的命令行来增加共享存储,然后将这些新磁盘逐一追加到虚拟机即可.下面给出具体描述.   1.添加虚拟磁盘 #下面我们为虚拟机增加2块共享磁盘 #一块为添加ocr镜像,一块用于补充asm磁盘不够用的情形 C:\Users\robinson.cheng>cd C:\Program Files (x86)\VMware\VMware Se

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

        Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上.有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remote_listener参数.两种方式各有优劣,而且两者并不相互排斥,因此可以结合两种方式来更加有效的实现负载均衡.本文将描述两者结合的使用情况(oralce 10g rac).         有关客户端与服务端负载均衡的单独测试请参考:              Oracle RAC

测试Oracle RAC数据库集群功能

Oracle RAC是一个集群数据库,可以实现负载均衡和故障无缝切换.如何知道RAC数据库已经实现了这些功能呢,下面就对此进行功能测试. 一. 负载均衡测试 RAC数据库的负载均衡是指对数据库连接的负载均衡,当一个新的会话连接到RAC数据库时,通过指定的分配算法将请求分配到集群的任一节点上,这就是RAC数据库完成的功能.负载均衡在RAC中分为两种:一种是基于客户端连接的负载均衡:一种是基于服务器端的负载均衡. 1. RAC客户端负载均衡 客户端连接的负载均衡配置起来非常简单,与RAC数据库的实例

Oracle iAS 10g Report Server Cluster 配置和测试

oracle|server Oracle iAS 10g Report Server Cluster 配置和测试

oracle数据泵不同工作方式性能比较(五)测试NETWORK_LINK导入方式

根据Oracle的文档的描述,数据泵采用不同的方式导出导入,性能也会有明显的差别,这次正好有机会测试一下,迁移表空间.直接路径.外部表方式,以及数据库链方式导出.导入的性能差异. 这篇测试NETWORK_LINK导入方式. 首先清除上一篇文章中导入的用户和表空间,并重新建立测试用户和表空间. SQL> DROP USER TJSQ_NDMAIN CASCADE; User dropped. SQL> DROP USER TJSQ_TRADE CASCADE; User dropped. SQL