批注:查询结果中如果是NONE,说明这个连接没有使用TAF;如果和客户端tnsnames.ora配置中的相同,说明使用了TAF。

三.Service-Side TAF

Service-Side TAF,服务器透明故障转移可以看作是TAF的一个变种。首先Service-Side TAF也是TAF,所有TAF的特点它都具有;其次,这种TAF是在服务器

上配置的,而不像TAF在客户端配置的。

Client-Side TAF 配置过程需要修改客户端的tnsnames.ora文件,如果有很多客户端使用这个数据库,那么每次微小的参数调整都要把所有客户端的

tnsnames.ora都调整一遍,既低效又易出错。而Service-Side TAF通过结合Service,在数据库里保存FAIL-MODE的配置,把所有的TAF配置保存在数据字典

中,从而省去了客户端的配置工作。

从配置参数而言,Service-Side TAF和TAF相比多了一个Instance Role 的概念。所谓实例Instance Role就是当多个Instance参与一个Service时,可以配置优化

使用哪一个Instance为用户提供服务。用户共享两种可选角色。

PREFERRED:首选实例,会优先选择拥有这个角色的实例提供服务。

AVAILABLE:后备实例,用户连接会优先选择PREFERRED的Instance,当PREFERRED的Instance不可用时,才会转到AVAILABLE的Instance上。

要使用Service-Side TAF必须配置Service。Service 可以在创建数据库时创建,也可以在数据库创建之后修改;既可以通过配置向导也可以通过命令方式进行

配置。

下面分别演示采用DBCA和手工两种方式配置Service的过程。

方式一:使用DBCA配置Service

1)oracle用户下运行DBCA出现欢迎界面

2)在已有的RAC数据库上创建新的Service,此处选择"Service Management"

3)选择要配置Service的数据库

4)添加Service名字以及定义实例角色

5)查看配置的Service是否创建成功

[oracle@rac1 ~]$ crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host

----------------------------------------------------------------------

ora.HHPEN1.db  application    0/1    0/1    OFFLINE   OFFLINE

ora.orcl.db    application    0/1    0/1    ONLINE    ONLINE    rac2

ora....l1.inst application    0/5    0/0    ONLINE    ONLINE    rac1

ora....l2.inst application    0/5    0/0    ONLINE    ONLINE    rac2

ora...._TAF.cs application    0/0    0/1    ONLINE    ONLINE    rac1

ora....cl1.srv application    0/0    0/0    ONLINE    ONLINE    rac1

ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1

ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1

ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1

ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1

ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2

ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2

ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2

ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2

ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2

SQL> show parameter service;

NAME                                 TYPE     VALUE

------------------------------------ -------- ------------------------------

service_names                        string   orcl, orcl_TAF

6)如果客户端想要通过service方式连接数据库,需要在TNS条目中使用service_name方式引用数据库。

7)修改Service的TAF配置,需要使用dbms_service.modify_service

批注:无论使用DBCA还是srvctl命令来配置Service,都无法配置TAF的type、delay、retries这三个属性。必须使用dbms_service包来修改这些属性。

8)确认修改已经生效

方式二:使用命令配置Service

1)创建Service语法如下:

srvctl add service -d -s -r "preferred-instance-list" -a "avaiable-instance-list" -p

批注:其中TAF-policy选项可以是BASIC或PRECONNECT

2)查看配置

srvctl config service -d database-name [-s service-name] [-a]

客户端连接测试:

在ORACLE 10G中配置了Service-Side TAF之后,客户端甚至不需要tnsnames.ora文件,而是使用ORACLE 10G提供的新连接方法Easy Connect Naming

Methods。为了展示这一特性,测试之前先把客户端的tnsnames.ora文件改名存放,以保证客户端在没有TNS的情况下进行这个测试。使用Easy Connect

Naming Methods时的连接串格式如下:

username/password@[//]host[:port][/service_name]

客户端连接操作如下:

批注:该连接对应的server process的OS PID是14469,在操作系统上杀掉这个进程。

[oracle@rac1 ~]$ ps -ef|grep 14469

oracle   14469     1  0 19:47 ?        00:00:00 oracleorcl1 (LOCAL=NO)

oracle   18000 17607  0 19:50 pts/3    00:00:00 grep 14469

[oracle@rac1 ~]$ kill -9 14469

当前会话查询实例名和运行状态,此时会话已断开如下:

批注:按理说应该会跳转到rac2节点上,肯定哪个地方配置错了,稍后重新再看看。

上述方法没奏效,我选择关闭节点rac1的实例,验证结果。

补充:相同环境进行测试failover

1.客户端连接并查询会话ID

2.通过session ID在服务器端操作系统中删除该会话连接

3.会话并没有断开,服务器为其分配一个新的session ID

批注:当客户端连接集群数据库时,由于某些原因session ID被异常终端,已经配置了服务器端的故障转移,该会话并不会终端,而是服务器为其分配一个

新的session ID,继续通过当前会话为用户提供对数据库的操作。如果当前会话连接的实例宕掉,会自动去寻找备用实例。

oracle failovermode,[WK-T]ORACLE 10G 配置故障转移(Failover)相关推荐

  1. 为SQL Server Always On可用性组配置故障转移群集,存储控制器和仲裁配置

    This article explores the configuration of Windows failover clusters, storage controllers and quorum ...

  2. windows server 2012 dhcp 配置故障转移

    在前面,青年怪客搭建的活动目录服务,在前面的内容中,我希望能在一个企业中,有一到两台域服务器可以管理我们企业内容中的计算机,但是一般的企业都是需要DHCP服务器的,为此我在前面的内容中,也配置了第一台 ...

  3. 配置故障转移群集,livemigration系列之七

    配置故障转移群集          在上文中创建了故障转移群集后,我们接下来对故障转移群集进行配置,主要是配置故障转移群集使用的仲裁磁盘和群集共享卷.在Server1的"Administra ...

  4. Weblogic配置故障转移

    前提:实现负载均衡,即当访问项目时,会通过代理服务器将请求分发到不同的服务器上. weblogic的故障转移配置 在项目的WEB-INF目录下创建weblogic.xml <!DOCTYPE w ...

  5. WindowsServer2016配置故障转移群集

    准备工作 首先准备两台以上服务器的,并记录下IP地址和主机名. IP: 172.31.217.67 主机名:WIN-1L7C679HLDE IP:172.31.211.29 主机名:WIN-93RVO ...

  6. windows 2008+Oracle 11g R2 故障转移群集配置

    2019独角兽企业重金招聘Python工程师标准>>> 故障转移群集环境介绍: 1.1 逻辑拓扑图 1.2 服务器A OS:win 2008 entprise sp1 ServerN ...

  7. 手把手教你实现mysql读写分离+故障转移

    前言 上一篇发了手动搭建Redis集群和MySQL主从同步(非Docker)之后,很多同学对文中主从结构提到的读写分离感兴趣,本打算在双十一期间直接把读写分离分享给大家,奈何工作一直没停下,所以这周抽 ...

  8. Windows Server 2012R2 DHCP故障转移(3)

    4. 配置故障转移 1) 登陆主DHCP服务器,打开DHCP管理器---配置故障转移 2) 下一步 3)选择添加服务器 4)选择浏览 5)选择备用DHCP服务器. 6)配置DHCP故障转移相关参数,这 ...

  9. Windows Server 2008 故障转移群集简介

    Chuck Timon 概览: "故障转移群集管理"管理单元 新功能和增强功能 备份和还原功能 从 Windows Server 2003 进行迁移 目录 新的管理界面 改进了配置 ...

最新文章

  1. MetagenoNets:在线宏基因组网络分析实操教程
  2. SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
  3. html特殊字符的html,js,css写法汇总
  4. android4.0 系统广播集
  5. Linux find查找文件夹(目录)所在位置
  6. 7-4 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
  7. linux注册函数机制,Linux可信计算机制模块详细分析之函数实现机制(1)字符设备驱动...
  8. 一篇文章搞懂架构师的核心技能
  9. python教程简书_Python快速教程
  10. IDEA卡顿问题解决-加大内存
  11. mysql in 索引_mysql-IN子句不使用索引
  12. visual studio emmet使用
  13. Kali Linux 无法定位软件包
  14. 微信公众号文章中插入的图片如何实现滑动效果
  15. 计算机二级相关快捷键,计算机二级考试Word+Excel必备快捷键!
  16. uniapp swiper内嵌video组件的坑
  17. 小木虫内蒙古科技大学计算机,2019年内蒙古科技大学招收考研调剂(二)
  18. 迈卓诺(Metronor)光笔测量仪--大型模具的测量利器
  19. word图文混排复制到JMEditor图片不显示
  20. 手把手教你搭建LAMP环境,运行第一个属于你的个人网站

热门文章

  1. 奥比中光2022春季校园招聘全面启动!
  2. 基于激光雷达点云的3D目标检测算法—端到端多视图融合
  3. 视频|结构光编码与三维重建
  4. 3D点云two-stage目标检测方法优化综述
  5. 2021-7-20 pytorch学习基础笔记
  6. Shiny平台构建与R包开发(三)——数据输出
  7. mysql 优先队列_深入浅出 MySQL 优先队列(你一定会踩到的order by limit 问题)
  8. R语言|又来一个气泡图
  9. QIIME 2教程. 10数据导出Exporting data(2020.11)
  10. 中文版NCCN指南PPT分享(36本)