Transparent Application Failover 透明应用切换
官方文档地址 http://docs.oracle.com/cd/E11882_01/network.112/e41945/advcfg.htm#NETAG455
About Transparent Application Failover
- TAF 是 client-side 特性,在一个数据库实例发生失败的情况下,允许客户端重新连接到存活的节点。服务器使用通知(Notifications)来触发客户端的 TAF callbacks
- TAF 的配置方式:
- 使用客户端(client-side )指定的 TNS 连接符
- 使用服务器端(server-side)的 service 属性
- 如果同时使用这两种方式,那么服务器端的 service 属性将取代客户端的设置。配置 TAF 时优先服务端的service 属性
- TAF 有两种模式:Session Failover 和 Select Failover。Session Failover 可以重建丢失的连接和会话;Select Failover 可以继续执行一个未完成的查询
- TAF 工作在以下的数据库配置中,以掩饰数据库故障:
- Oracle RAC
- Replicated systems
- Standby databases
- Single instance Oracle database
About FAILOVER_MODE Parameters
- FAILOVER_MODE 参数包含在连接描述符的 CONNET_DATA 部分
- FAILOVER_MODE 可以包含以下参数:
参数 | 描述 |
---|---|
BACKUP | 指定备份连接的网络服务名,当使用 preconnect 预建连接时指定该参数 |
DELAY | 等待多久后,重新尝试连接,单位是秒;如果指定了 RETRIES,DELAY 默认是 1秒 如果注册了 callback 函数,该参数被忽略 |
METHOD | 从主节点到备节点的失败切换: basic:在发生 failover 时才建立连接 preconnect:预先建立连接。它提供了快速 failover,但是需要备份实例可以支持来自每个被支持实例的所有连接 |
RETRIES | 在 failover 后尝试连接的次数。如果指定了 DELAY,RETRIES 默认值是 5 |
TYPE | failover 的类型: session:如果用户连接丢失,新的会话会被自动创建在;它不会尝试恢复 SELECT 操作 select:可以继续执行 SELECT 操作 none:默认值,不具备 failover 功能;它可以用来显式地阻止发生 failover |
Implementing Transparent Application Failover
- 注意:不要在 listener.ora 文件中的 SID_LIST_listener_name 部分设置 GLOBAL_DBNAME。静态配置的全局数据库名会禁用 TAF
- 通过设置不同的 FAILOVER_MODE 参数可以配置不同方式的 TAF
- Oracle 推荐以下三种方法:
TAF with Connect-Time Failover and Client Load Balancing
- 使用 Connect-Time Failover 和 Client Load Balancing 配置 TAF
- 在下面的例子中,Oracle Net 随机地连接到 sales1-server 或 sales2-server 上的一个协议地址。如果连接之后实例失败,TAF 会切换到另一个节点的监听,保留任何未完成的 SELECT 操作
sales.us.example.com=
(DESCRIPTION=
(LOAD_BALANCE=on)
(FAILOVER=on)
(ADDRESS=
(PROTOCOL=tcp)
(HOST=sales1-server)
(PORT=1521))
(ADDRESS=
(PROTOCOL=tcp)
(HOST=sales2-server)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic))))
TAF Retrying a Connection
- 在设置 RETRIES 和 DELAY 参数的情况下,如果第一次尝试连接失败,TAF 也提供了自动重试连接的能力
- 在下面的例子中,Oracle Net 尝试重新连接 sales1-server 的监听。如果 failover 连接失败,Oracle Net 会在尝试重连前等待 15 秒,总共尝试重连 20 次
sales.us.example.com=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=sales1-server)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic)
(RETRIES=20)
(DELAY=15))))
TAF Pre-establishing a Connection
- 一个备份连接可以被预先建立。最初的和备份的连接可以被显式地指定
- 在下面的示例中,客户端使用网络服务名 sales1.us.example.com 连接 sales1-server 的监听时,同时会预先连接到 sales2-server。如果连接之后 sales1-server 失败,Oracle Net 会切换到 sales2-server,保留任何未完成的 SELECT 操作。同样地, 使用网络服务名 sales2.us.example.com 连接 sales2-server 的监听时,同时会预先连接到 sales2-server
sales1.us.example.com=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=sales1-server)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(INSTANCE_NAME=sales1)
(FAILOVER_MODE=
(BACKUP=sales2.us.example.com)
(TYPE=select)
(METHOD=preconnect))))
sales2.us.example.com=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=sales2-server)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(INSTANCE_NAME=sales2)
(FAILOVER_MODE=
(BACKUP=sales1.us.example.com)
(TYPE=select)
(METHOD=preconnect))))
Verifying Transparent Application Failover
- 可以通过查询 V$session 视图中的 FAILOVER_TYPE、FAILOVER_METHOD 和 FAILED_OVER 列,来验证 TAF 是否正确配置
- 可以使用类似于下面的查询
SELECT MACHINE, FAILOVER_TYPE, FAILOVER_METHOD, FAILED_OVER, COUNT(*)
FROM V$SESSION
GROUP BY MACHINE, FAILOVER_TYPE, FAILOVER_METHOD, FAILED_OVER;
- 在 failover 前的输出可能是下面这样
MACHINE FAILOVER_TYPE FAILOVER_M FAI COUNT(*)
-------------------- ------------- ---------- --- ----------
sales1 NONE NONE NO 11
sales2 SELECT PRECONNECT NO 1
- 在 failover 后的输出可能是下面这样
MACHINE FAILOVER_TYPE FAILOVER_M FAI COUNT(*)
-------------------- ------------- ---------- --- ----------
sales2 NONE NONE NO 10
sales2 SELECT PRECONNECT YES 1
Transparent Application Failover 透明应用切换的更多相关文章
- Transparent HugePages(透明大页)
Transparent HugePages(透明大页) 1. 介绍 从RedHat6, RedHat7, OL6, OL7 SLES11 and UEK2 kernels开始,透明大页默认是被开启的以 ...
- Oracle 10g R2 Transparent Data Encryption 透明数据加密
Oracle 10g R2 Transparent Data Encryption 透明数据加密 本章介绍如何使用透明数据加密来保护Oracle数据库中的敏感数据,该功能使您可以加密数据库列并管理加密 ...
- css transparent属性_css 透明颜色transparent的使用
在css中 transparent到底是什么意思呢? transparent 它代表着全透明黑色,即一个类似rgba(0,0,0,0)这样的值. 例如在css属性中定义:background:tran ...
- Oracle RAC Failover
Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会 ...
- Oracle RAC Failover 详解
Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会 ...
- RAC FAILover详解(转载)
Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会 ...
- 负载均衡和故障转换(Failover)的连接RAC方法
TAF:Transparent Application Failover,透明的应用切换,即在切换的过程中,用户感知不到.可以实现会话的切换(无法实现事务的切换,即没有提交的事务会回滚),即在不断开连 ...
- oracle11g在没DNS情况下failover的配置方法
1.Oracle 11g引入scan ip ,可在没有DNS的情况下,客户端连接RAC配置failover时,很多情况还是使用oracle10g方式.即在客户端tnsname.ora中配置failov ...
- 三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
三种 Failover 之 Client-Side Connect time Failover.Client-Side TAF.Service-Side TAF 理论背景 Oracle RAC 同时 ...
随机推荐
- 【Java SE】如何用Java实现直接选择排序
摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的 ...
- mysql varchar类型转换int类型找出最大值
(1) 不严谨的,最简单的 select MAX(字段名 + 0) from 表名; (2) 使用函数实现 select MAX(cast(字段名 as SIGNED INTEGER)) from 表 ...
- 编写自己的一个简单的web容器(一)
在之前的博客中我更大家说过Http协议是对tcp协议的封装,其底层还是使用tcp协议来进行数据传出的,浏览器实际上就是一个Socket客户端,今天呢我们就开始着手利用ServerSocket来编写一个 ...
- AJAX的简单梳理
一.Ajax的简介 Ajax,异步JavaScript和XML,异步提交,无刷新技术,局部刷新技术 1)传统的客户端与服务器端交互的模式 客户端发送请求直接给服务端,服务接受到请求后进行逻辑运算,最终 ...
- SQL Server on Red Hat Enterprise Linux——RHEL上的SQL Server(全截图)
本文从零开始一步一步介绍如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创 ...
- Java高效计数器
本文转载地址: http://blog.csdn.net/renfufei/article/details/14120775 我们经常使用 HashMap作为计数器(coun ...
- java集合(2)- java中HashMap详解
java中HashMap详解 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 H ...
- esclipse连接mysql数据库
怎样在eclipse开发环境中连接数据库并测试连接是否成功 1)eclipse开发环境里没有集成mysql的驱动,需要从以下地址下载连接驱动程序mysql-connector-java-XX-XX-X ...
- 教育类APP开发现新增长,多款APP该如何突围?
"十二五"以来,国家共出台相关的重大教育政策文件741个,而进入到"十三五"时期教育领域综合改革深入推进的关键期,不断促进教育现代化的实现.加快迈入人力资源强国 ...
- 干货——基于Nop的精简版开发框架(附源码)
.NET的开发人员应该都知道这个大名鼎鼎的高质量b2c开源项目-nopCommerce,基于EntityFramework和MVC开发,拥有透明且结构良好的解决方案,同时结合了开源和商业软件的最佳特性 ...