客户端负载均衡及透明应用切换(TAF)tnsnames failover=on

2023-11-02

客户端负载均衡及透明应用切换(TAF

这是客户端的一种功能,要在客户端的tnsnames.ora中设置本地服务命名相应的参数(LOAD_BALANCE=ONFAILOVER=ONFAILOVER_MODE参数)来启用客户端负载均衡和TAF功能。客户端负载均衡并不衡量RAC节点CPU的使用率,它只是随机的连接一个节点的监听。由于是随机连接,所以大体上做到连接数的负载均衡。在RAC环境中设置tnsnames.ora时,应使用SERVICE_NAME

而不要使用SID,但是在使用RMAN进行备份和恢复时必须使用SID而不能使用SERVICE_NAME

 

RAC双主模式时,客户端可以只使用一个本地服务命名(无预连接功能),或者使用两个本地服务命名(有预连接功能)

具有客户端负载均衡及透明应用切换无预连接的tnsnames配置

 

RAC9I =

 (DEscrīptION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))

     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))

     (LOAD_BALANCE = ON)

     (FAILOVER = ON)

   )

    (CONNECT_DATA =

      (SERVICE_NAME = rac9i.xyf)

      (FAILOVER_MODE =

        (TYPE = select)

        (METHOD = basic)

        (RETRIES = 10)

        (DELAY = 1)

      )

    )

  )

 

无客户端负载均衡有透明应用切换且有预连接的tnsnames配置

 

RAC9I1 =

 (DEscrīptION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))

     (LOAD_BALANCE = OFF)

     (FAILOVER = ON)

   )

    (CONNECT_DATA =

      (SERVICE_NAME = rac9i.xyf)

      (INSTANCE_NAME = rac9i1)

      (FAILOVER_MODE =

        (BACKUP=RAC9I2)

        (TYPE = select)

        (METHOD = preconnect)

      )

    )

  )

  

RAC9I2 =

 (DEscrīptION =

   (ADDRESS_LIST =

     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))

     (LOAD_BALANCE = OFF)

     (FAILOVER = ON)

   )

    (CONNECT_DATA =

      (SERVICE_NAME = rac9i.xyf)

      (INSTANCE_NAME = rac9i2)

      (FAILOVER_MODE =

        (BACKUP=RAC9I1)

        (TYPE = select)

        (METHOD = preconnect)

      )

    )

  )

 

 

参数的含义:

LOAD_BALANE    FAILOVER

  ON             ON    客户端新建连接随机尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听,如没有一个监听可用,则返回错误信息

 

  ON             OFF   客户端新建连接随机尝试ADDRESS_LIST中的任一监听,无论这个监听是否可用,如不可用直接返回错误。

 

  OFF            ON    客户端新建连接按顺序尝试ADDRESS_LIST中的监听,直到连接到一个可用监听,或者连完列表中的所有监听如没有一个监听可用,则返回错误信息

 

  OFF            OFF   客户端新建连接仅连接ADDRESS_LIST中第一个监听,无论这个监听是否可用,如不可用直接返回错误。

 

对于已有连接的失败切换,首先要求FAILOVER = ON,并且设置了FAILOVER_MODE

 

FAILOVER_MODE的子参数含义:

 

TYPE1)session---如果用户连接丢失,将创建一个新的会话连接到备用节点,用户的所有未提交的操作必须回滚,然后再次执行,SELECT操作也被中止.

     2)select---如果用户连接丢失,将使用游标和之前的快照继续执行SELECT操作,叫做SQL接管,SQL接管能够无缝接管理的事务类型只有SELECT语句.其它的操作也必须要回滚然后再次执行.

     3)none---客户端默认值,禁止SQL接管功能,主要用于测试的目地,在实际应用中TYPE应指定为session或者select

 

METHOD1)basic---仅仅在FAILOVER发生时才连接备用节点

         2)preconnect---在用户连接到主节点时同时也在备用节点产生一个连接会话,设置预连接模式,能够快速接管SQL

 

RETRIES:当前节点失败后,失败切换功能会尝试连接备用节点,这个值确定了尝试的次数,如果仅DELAY被指定,RETRIES默认为5

 

DELAY:两次尝试之间等待的秒数,如果仅指定RETRIESDELAY默认为1

 

BACKUP:指定另外一个用于备份连接的网络服务名,当RAC设置为主次模式时,使用此参数,并且METHOD应该设为preconnect

 

 

RAC设置为主次模式时的tnsnames配置

无客户端负载均衡(主次模式就不要客户端负载均衡了),有透明应用切换且有预连接的tnsnames配置

RAC9I1 =

 (DEscrīptION =

     (ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))

(ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))

     (LOAD_BALANCE = OFF)

     (FAILOVER = ON)

    (CONNECT_DATA =

      (SERVICE_NAME = rac9i.xyf)

      (INSTANCE_ROLE = PRIMARY)

      (INSTANCE_NAME = rac9i1)

      (FAILOVER_MODE =

        (BACKUP=RAC9I2)

        (TYPE = select)

        (METHOD = preconnect)

      )

    )

  )

  

RAC9I2 =

 (DEscrīptION =   

(ADDRESS = (PROTOCOL = tcp)(HOST = rac9ibw)(PORT = 1521))

(ADDRESS = (PROTOCOL = tcp)(HOST = rac9iaw)(PORT = 1521))

     (LOAD_BALANCE = OFF)

     (FAILOVER = ON)

    (CONNECT_DATA =

      (SERVICE_NAME = rac9i.xyf)

      (INSTANCE_ROLE = SECONDARY)

      (INSTANCE_NAME = rac9i2)

      (FAILOVER_MODE =

        (BACKUP=RAC9I1)

        (TYPE = select)

        (METHOD = preconnect)

      )

    )

  )

 

也可以设置为有透明应用切换但无预连接的模式,只要把上面的设置中的METHOD设置为basic

 

与双主模式时的配置相比,多了INSTANCE_ROLE这样一个参数,当这个参数为SECONDARY时,

这个本地服务命名不直接接收连接,只在主节点失败后才会接收连接。不直接接收连接,并不是指在客户端不能连通这个服务命名,只不过这个连接会被路由到主节点,次要次点并不真正有连接连上去。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

客户端负载均衡及透明应用切换(TAF)tnsnames failover=on 的相关文章

  • Prolog 中的隔离列表

    我很难理解如何让我的代码显示由偶数和奇数组成的隔离列表 我什至不确定我的理解缺乏什么 显然我对这门语言很陌生 必须在学校使用它 我的命令式和功能性思维不会让我知道这到底是怎么回事 哈哈 现在 不 我不是要求你做我的作业 我只是请你帮我看看我
  • 为什么 list() == 1 给出结果,而 list() > 1 给出错误? [复制]

    这个问题在这里已经有答案了 即使这些比较没有意义 为什么 list 1 return False but list gt 1 return gt not supported between instances of list and int
  • 如何在 AppleScript 的处理程序中有效地构建列表?

    AppleScript 文档建议使用以下代码来有效构建列表 set bigList to set bigListRef to a reference to bigList set numItems to 100000 set t to ti
  • 递归分割列表函数 LISP

    split list 函数接受一个列表并返回一个由两个列表组成的列表 其中两个列表由输入的交替元素组成 我写了以下内容 defun split list L cond endp L list NIL NIL t let X split li
  • 如何将列表中的每个项目转换为字符串,以便连接它们? [复制]

    这个问题在这里已经有答案了 我需要加入一个项目列表 列表中的许多项目都是从函数返回的整数值 IE myList append munfunc 我应该如何将返回的结果转换为字符串以便将其加入列表 我是否需要对每个整数值执行以下操作 myLis
  • JasperReports:传入列表列表作为数据源

    我需要用不同对象的列表填充一些子报表 基本上可以说我有以下内容 二手车子报告新车子报告 我创建一个车辆 bean 类 其中变量作为字符串 并为其创建 getter 和 setter 方法 然后在我的数据源中我传入一个List
  • 如何在Python中一次比较二维数组的2列与另一个数组的列

    我有两个字符串数组 每个数组有三列 我想比较两个二维数组的前两列 有 3 列和 4000 行 如果它们匹配 那么我需要那些匹配的值 但是我的代码不起作用 这是一个示例 array1 1stcolumn 2ndColumn 3rdColumn
  • 这段代码中list[:]的含义是什么? [复制]

    这个问题在这里已经有答案了 这段代码来自Python的文档 我有点困惑 words cat window defenestrate for w in words if len w gt 6 words insert 0 w print wo
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • 替换 Python 列表/字典中的值?

    好的 我正在尝试过滤传递给我的列表 字典并稍微 清理 它 因为其中有某些值我需要删除 所以 如果它看起来像这样 records key1 AAA key2 BBB key3 CCC key4 AAA 我如何快速轻松地运行所有内容并将 AAA
  • 存储整数列表的最有效方法

    我最近一直在做一个项目 其中一个目标是使用尽可能少的内存来使用 Python 3 存储一系列文件 除了一个整数列表之外 几乎所有文件都占用很少的空间 大致333 000整数长且整数可达约8000在尺寸方面 我目前正在使用pickle存储列表
  • Python列表错误还是我错了?

    我构建了一个 3 级嵌套列表 run on Python 3 2 3 32 bit on Win 7 L2 list 0 for i in range 2 L3 list L2 for i in range 3 L4 list L3 for
  • 停止或终止服务

    我正在开发一个任务管理器应用程序 在该应用程序中 我向用户显示正在运行的应用程序列表以及每个应用程序旁边的终止按钮 当用户按下终止按钮时 相应的活动将被终止 我使用了 activitymanager killbackgroundproces
  • 如何获取列表的最后一个索引?

    假设我有以下列表 list1 1 2 33 51 indices 0 1 2 3 如何获取该列表的最后一个索引 在本例中为 3 len list1 1绝对是可行的方法 但如果您绝对需要list具有返回最后一个索引的函数 您可以创建一个继承自
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • Mongod 服务启动退出,代码为 100

    Problem 我的 mongo 服务不再启动 root machine service mongod start root machine service mongod status mongod service High perform
  • Sharepoint Server 对于 Excel Services 或 Excel Web Access 是必需的吗

    Excel Services 和 Excel Web Access 随 Microsoft Office SharePoint Server 2007 一起提供 我想知道是否可以在不运行 Sharepoint Server 的情况下使用 E
  • 用特定值填充Python中的列表[重复]

    这个问题在这里已经有答案了 可能的重复 一些内置的Python填充列表 https stackoverflow com questions 3438756 some built in to pad a list in python 我有一个
  • 多次调用 startService 时实际会发生什么

    我正在打电话startService 多次对同一服务有不同的意图 很明显 任何时候都只存在一个服务实例startCommand 被称为每个startService 我的问题是 调用时有性能影响吗startService 多次 意图会按照调用
  • 如何将dll作为服务运行?

    我知道如何编写 dll 如何编写服务以及如何运行 dllrundll32 但现在我想编写一个在Windows中作为服务安装的dll 我不知道这是否可能或应该导出 dll 中的哪个函数 如何将 dll 作为服务安装并运行 有几种不同的方法可以

随机推荐

  • cpu如何区分指令和数据

    cpu如何区分指令和数据 我们知道指令是操作码 地址码组成 以二进制的形式存放在内存中 数据也是以二进制的形式存放在内存中 那么当cpu去访问内存的存储单元时 怎么区分现在读取的是指令还是数据呢 冯诺依曼计算机是根据指令周期的不同阶段 来区
  • 交叉编译bluez-5.3及解决No default controller available文件解决

    Bluez作为当前最成熟的开源蓝牙协议栈 在Linux的各大发行版中已经得到了广泛的应用 在桌面环境下 使用Bluez应该已经没有太大的问题 本文的主要目的是介绍在嵌入式平台上 搭建和配置Bluez的各个Profile运行所需做的工作 讨论
  • android学习笔记-------notification类显示通知

    notification类可以对程序设置推送信息 就是对状态栏的信息进行推送 首先需要一个NotificationManager来对通知进行管理 调用Context的getSystemService 方法获取到 创建一个Notificati
  • AES加解密local_policy.jar包下载

    AES加密 AES加密的五种模式 ECB Electronic Codebook Book 电码本模式 将明文分成若干段相同的小段 不足补齐 然后依次对每一小段进行加密后输出密文 ECB模式的弱点在于 相同的明文会产生相同的密文 容易遭到字
  • 【转载】C#之密封类(sealed class)

    C 之密封类 sealed class 密封类 sealed 修饰符可以应用于类 实例方法和属性 密封类不能被继承 密封方法会重写基类中的方法 但其本身不能在任何派生类中进一步重写 当应用于方法或属性时 sealed 修饰符必须始终与 ov
  • 单细胞测序的原理及应用

    单细胞测序技术自2009年问世 2013年被Nature Methods评为年度技术以来 越来越多地被应用在科研领域 2015年至今 10X Genomics Drop seq Micro well Split seq等技术的出现 彻底降低
  • LeetCode - 数独类题目总结

    什么是数独 数独是源自18世纪瑞士的一种数学游戏 是一种运用纸 笔进行演算的逻辑游戏 玩家需要根据9 9盘面上的已知数字 推理出所有剩余空格的数字 并满足每一行 每一列 每一个粗线宫 3 3 内的数字均含1 9 不重复 1 数独盘面是个九宫
  • PS工具的使用

    PS工具的使用 要求 1 会简单的抠图 2 会简单的修改PSD效果图 3 熟练的切图 4 与设计师 美工沟通 1 按拖拽工具 可以将其他的图片拖拽到另一个图片里面去 2 ctrl T可以改变图像的大小 变换过程中 按住shirt键 可以等比
  • JS逆向04之xhr断点webpack抠代码,图文并茂,导出加密函数。

    说明 本文只针对新手入门了解 高手绕道 只做技术性研究 请勿用于非法渠道 目标 https www gm99 com 前言 1 首先准备Chrome内核浏览器 我用的360极速版浏览器 2 打开目标网址 按F12或者网页空白处右键审查元素
  • 1 如何在计算机中表示一个词的意思?

    本章主要介绍了 如何在计算机中表示一个词的意思 从WordNet OneHot 到最重要的Word2Vec算法 参考 https www zhihu com column c 1507074362628374528 https zhuanl
  • Linux服务器-Linux服务器的类型

    Linux系统发行版本 当前市面上流行的Linux系统主要分为Readhat和Debian两大系列 而android底层直接用linux原版内核 2 一 Redhat系列 Redhat 主要是服务器型Linux 商用收费 RHEL是Red
  • CSS ul li 缩进控制,各版本兼容设置,文章第一行缩进两汉字

    CSS ul li 缩进控制 各版本兼容设置 将margin 和padding 都设置成0 ul list style type none margin 0px padding 0px text indent 2em 这句话的目的就是为了让
  • UncaughtExceptionHandler示例使用

    概述 UncaughtExceptionHandler是用来catch线程内的没有被捕获到的exception 可以在uncaughtException方法中对这些异常进行统一处理 用法 UncaughtExceptionHandler是一
  • windows切换窗口快捷键

    切换窗口实际看上去也不复杂 但是一旦打开的软件窗口多了 单纯的用眼搜索查找 鼠标点击效率还是有点低 IDE有快捷键 windows也有快捷键 感觉也可以总感觉汇总一个 这里就是关于windows切换窗口的几个快捷键 1 crtl tab 这
  • 西门子S120常见故障F7900及其排查方法

    西门子S120作为一款高性能伺服驱动器 其强大的功能和优越的控制性能得到了广大用户的一致好评和青睐 借助强大的调试软件可以方便完成S120的调试 但对于初步接触和使用该产品的工程师来说 调试过程中往往会遇到一些简单的问题 由于缺乏经验而导致
  • 线性代数学习笔记4——矩阵的逆

    在进行矩阵的运算的时候 我们会发现我们没有定义矩阵的除法 但是经常又需要做类似的操作 因而我们引入矩阵的逆的概念 用以填补这个空白 矩阵的逆 由于我们在定义矩阵运算的时候只定义了数乘和矩阵乘法 而没有除法运算 和逆元的产生一样 我们为了定义
  • AutoDL算力平台租用GPU服务器+VSCode远程开发同步代码

    文章目录 一 关于租GPU服务器 二 使用XShell连接刚租的服务器 三 VSCode远程开发 四 VSCode SFTP插件实现本地代码与远程代码同步 一 关于租GPU服务器 理由 便宜好用 性价比高 https www autodl
  • Mybatis-plus3.5.1+版代码自动生成(FastAutoGenerator)

    该方法仅适用于mybatis plus 3 5 1 以上的版本 准备工作 Maven依赖 注意版本 该方法有可能因为版本的问题出现错误
  • 初学编程100个代码

    Java Python等主流编程语言如今火的不行 初学编程都有哪100个代码呢 笔者结合实际开发经验和同学们最迫切关注的技术热点 总结了100个常用的代码实现 具体如下 1 输出 Hello World print Hello World
  • 客户端负载均衡及透明应用切换(TAF)tnsnames failover=on

    客户端负载均衡及透明应用切换 TAF 这是客户端的一种功能 要在客户端的tnsnames ora中设置本地服务命名相应的参数 LOAD BALANCE ON和FAILOVER ON FAILOVER MODE参数 来启用客户端负载均衡和TA