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 同时 ...
随机推荐
- JS实现鼠标悬浮,显示内容
其实就是增加title属性
- hdu1421 搬寝室 DP
转载: /*证明:从4个数中 a b c d 依次递增: 选取相邻的两个数一定是最小得 及:(a-b)^2+(c-d)^2<(a-c)^2+(b-d)^2&&(a-b)^2+( ...
- MySQL5.5多实例编译安装——多配置文件
一.什么是MySQL多实例?MySQL多实例简单的说就是在一台服务器上安装一套MySQL程序,通过不同的端口对外提供访问,多实例不仅节省物理主机成本,还有效提升了单台物理主机的CPU.磁盘I/O使用效 ...
- JAVA的HashSet源码分析
一.HashSet概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. 二.HashS ...
- 搜索技术---solr
solr 企业站内搜索技术选型 在一些大型门户网站.电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快.搜索结果按相关度排序.搜索内容格式 ...
- IE haslayout
我们都知道浏览器有bug,而IE的bug似乎比大多数浏览器都多.IE的表现与其他浏览器不同的原因之一就是,显示引擎使用一个称为布局(layout)的内部概念. 因为布局是专门针对显示引擎内部工作方 ...
- 第七篇:数据预处理(四) - 数据归约(PCA/EFA为例)
前言 这部分也许是数据预处理最为关键的一个阶段. 如何对数据降维是一个很有挑战,很有深度的话题,很多理论书本均有详细深入的讲解分析. 本文仅介绍主成分分析法(PCA)和探索性因子分析法(EFA),并给 ...
- QA技术概览
• 页面测试 页面测试,顾名思义,用来测试页面的表示和前端功能.这同时涉及单元测试和集成测试.我们会用Mocha 进行页面测试. • 跨页测试 跨页测试是对从一个页面转到另一个页面的功能的测试.比如电 ...
- 取代netcat
前言 众所周知,netcat是网络界的瑞士军刀,它的主要作用是:提供连接其他终端的方法,可以上传文件,反弹shell等等各种利于别人控制你电脑的操作.所以聪明的系统管理员会将它从系统中移除,这样当别人 ...
- YYLabel 自动布局 富文本文字点击事件
YYLabel显示多行除了需要设置numberOfLines = 0以外,还需要设置preferredMaxLayoutWidth最大的宽度值才可以生效多行效果 YYLabel中的NSMutableA ...