Oracle实现高可用性的工具(负载均衡/故障切换)

news2024/11/29 20:57:14

Oracle实现高可用性的工具(负载均衡/故障切换)

    • 1 Oracle RAC
        • 故障转移
        • 负载均衡
    • 2 Data Guard
        • 负载均衡-读写分离
        • Data Guard Broker
    • 3 GDS
        • GSM:

连接管理工具主要功能
Data Guard Broker功能是监控Data Guard状态,当主库异常时自动切换角色
GSM 全局服务管理器GSM 就是―全球监听器,它了解实时负载特征和复制数据库上的用户定义的服务布置策略。这些 GSM 有助于执行 GDS 的数据库间服务故障切换和负载平衡。
Oracle Net ServicesOracle Net Services 为数据库连接提供了连接负载均衡。
负载均衡顾问程序Oracle 真正应用集群提供了一个负载均衡顾问程序。RAC 按每个提供服务的实例持续监视针对每个服务执行的负载。
Oracle ClusterwareCRS主要完成集群成员管理、心跳监控、故障切换等功能。Oracle Clusterware 用于监管 Oracle Real Application Cluster 数据库。
VIP1. VIP是在clusterware安装最后阶段,通过脚本VIPCA创建的;2. VIP作为一个Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态;3. VIP会绑定到节点的public 网卡上;那么public网卡就有两个地址了;4. 当某个节点发生故障时,CRS会把故障节点的VIP转移到其他节点上;5. 每个节点的Listener会同时在public网卡的public IP和VIP两个地址上监听;6. 客户端的tnsname.ora一般会配置指向节点的VIP;
SCAN IPscan,single client access name。简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在DNS中可以解析为三个ip地址,客户端连接的时候只需要知道这个名称,并连接即可, 每个SCAN VIP对应一个scan listener,cluster内部的service在每个scan listener上都有注册,scan listener接受客户端的请求,并foward到不同的Local listener中去,还是由local 的listener提供服务给客户端。client -> scan listener -> locallistener -> local instance
TAF透明应用程序故障转移
深信服AD应用交付平台(第三方工具)作为应用服务器和oracle数据库之间的媒介,提供了负载均衡和健康监控的服务。借助AD可实现集中的健康监控,而不需要每台应用服务器都监控数据库服务器,从而卸载了应用服务器的负载,释放宝贵的计算资源。

1 Oracle RAC

多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储。
在这里插入图片描述

故障转移

Oracle Net中实际应用了两种连接故障转移功能。
在这里插入图片描述
连接时的故障转移Connect-Time Failover (CTF)
新建连接时,对于连接需求失败的例子进行故障转移;考虑到高可用性时,需要实际安装的功能
穿透性的应用故障转移Transparent Application Failover (TAF)
Oracle Call Interface(OCI) 客户端的功能;对于建立完成的连接中检测到切断时进行故障转移;并不是重新执行一次更新事务,对应用透明

负载均衡

客户端连接负载均衡
Oracle客户端的连接描述符中,会记录发出连接需求的Oracle listener的网络地址。其中可以记录多个Oracle listener的网络地址。客户端连接负载均衡对于这些Oracle listener的候补会分散发出连接需求的地址。
服务器连接负载均衡
Oracle listener中会记录构成RAC的oracle实例服务结构。记录的不止是服务的设定,还记录了负荷信息,并且会自动更新。Oracle listener如果接受Oracle客户端的连接需求的话,请对那个服务进行测试,判断是否需要分散负荷,重新定位到适合的节点中。因此,即使制成了客户端连接负荷均衡,实际上决定连接地址的还是服务器连接负载均衡。

RAC的故障转移与负载均衡(SCAN)
在这里插入图片描述
SCAN listener以及SCAN虚拟IP地址(SCAN VIP)同时启动
SCAN listener的运行节点中发生故障的话,就会在其他节点中通过SCAN VIP以及set来重启
在这里插入图片描述
通过DNS使得1个SCAN主机名对应多个SCAN VIP
在这里插入图片描述
客户端负载平衡将在集群内的全部 SCAN 监听器中平衡连接请求,方法是在客户端连接字符串的地址列表上使用 SCAN。 SQL*NET 将随机选择其中一个 SCAN ip 地址。如果选中的服务器不可用,则将尝试列表中的下一台服务器。使用DNS解析SCAN的时候,DNS服务器会采用rr(round-robin)的方式循环解析为它准备的3个IP地址,与Oracle 11g R2的客户端配合使不同的客户端能够连接到不同的SCAN Listener上,这相当于是Oracle 10g中配置的客户端负载均衡使用SCAN连接数据库实例,整个过程实现了客户端的Failover(Oracle 10g R2是通过FAILOVER=on来配置),DNS服务器返回的是一个SCAN VIP列表,客户端会选择其中一个连接到RAC,如果这个IP地址不能正常访问,客户端会选择另一个IP地址继续连接,直到所有的地址都不能正常连接,才返回错误给客户端,整个过程对客户端程序来说依然是透明的。
服务器端负载平衡是通过 SCAN 监听器实现的。每个 SCAN 监听器都能感知到提供每项服务的集群中的所有实例。基于为服务定义的目标,监听器会选择最符合目标的实例,然后通过本地监听器连接到该实例。Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去。当数据库处于运行时,RAC中各节点的PMON进程每3秒会将各自节点的连接负荷数更新到service_register。而对于节点中任意监听器故障或监听器意外失败时,PMON进程会每1秒钟检查当前节点上的监听是否重启,以获得最新的负载信息来及时调整负载均衡。

2 Data Guard

Data Guard这个方案就适合多机房的。某机房一个production的数据库,另外其他机房部署standby的数据库。Standby数据库分物理的和逻辑的。物理的standby数据库主要用于production失败后做切换。而逻辑的standby数据库则在平时可以分担production数据库的读负载。
在这里插入图片描述

负载均衡-读写分离

某机房一个production的数据库,另外其他机房部署standby的数据库。Standby数据库分物理的和逻辑的。物理的standby数据库主要用production失败后做切换。而逻辑的standby数据库则在平时可以分担production数据库的读负载。

Data Guard Broker

Data Guard 自带的工具,它不但自动进行 Data Guard 配置的创建、维护和监视,还对这些操作进行统一管理。数据库管理员 (DBA) 可通过 Broker 的命令行界面或 Oracle Enterprise Manager Cloud Control 与 Broker 进行交互。由 Data Guard Broker 管理的角色转换能够自动将一个备用数据库转换为主数据库角色,启动适合主数据库角色的数据库服务,通知应用程序客户端与出现故障的主数据库断开连接(结束它们的 TCP 超时状态),并引导其连接到新的主数据库,上述操作全部无需人工干预。对于使用全局负载平衡器和 DNS 故障切换来将用户连接重定向到新中间层的场合,也可以使用 Data Guard 角色更改事件来实现该场合的自动化处理。并且使用Oracle Net Services自动在Data Guard配置中的数据库之间进行通信。

3 GDS

GDS将智能负载平衡和客户端故障切换的概念扩展至全局分布式环境,在该环境中有两个或更多的可用于保持可用性的故障切换目标。
在这里插入图片描述

GSM:

GSM 就是―全球监听器,它了解实时负载特征和复制数据库上的用户定义的服务布置策略。这些 GSM 有助于执行 GDS 的数据库间服务故障切换和负载平衡。
gsm的职责如下:

  • 提供客户端连接时的负载均衡
  • 提供service级别的负载均衡,故障转移
  • 创建 run time LBA(load balancing advisory),并分发到所有的客户端
  • 监控数据库实例的可用性和全局服务的可用性,并在失败的时候通知客户端
  • 作为区域的监听,用户客户端连接global service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea2021版本新建maven项目

首先我们需要下载maven版本(maven下载地址Maven – Download Apache Maven),并且配置好maven仓库与环境变量,这里不细述了。打开idea选择新建项目,选择maven,效果如下图 我们选择maven-archetype-webapp类型。 下一步,…

4.9 内部类

文章目录1.内部类概述2.特点3.练习 : 内部类入门案例4.成员内部类4.1 练习 : 被private修饰4.2 练习 : 被static修饰5.局部内部类6.匿名内部类1.内部类概述 如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。 就是把类定义在类的内部的情…

MQ中间件概念一览

一、概述 1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由…

有了ChatGPT 微软对元宇宙不香了?

押注ChatGPT是微软最近的主要发力点,另一边,它开始向元宇宙业务挥出裁员“大刀”。海外消息称,微软解散了成立仅四个月的工业元宇宙团队,约100名员工被全被解雇。 这只是微软放缓元宇宙战略的长尾动作,此前&#xff0…

【MFC】模拟采集系统——界面设计(17)

功能介绍 启动界面 开始采集: PS:不涉及 数据保存,重现等功能 界面设计 界面分为三块:顶部黑条带关闭按钮、左边对话框,右边的主界面 资源: 顶部黑条 top.bmp 2* 29 (宽 * 高 像素点&…

SAS应用入门学习笔记7

代码说明: 1)distinct 想获得region变量有的多少种? 2)如果是常规语句,我们是使用proc freq 语句: where for filter: 然后有一个escape语句的概念: 这是一个简单的语法&#xff…

Redis集群离线安装

近日,由于客户的系统运行环境在一个封闭的网络内,不能与互联网联通,也不能提供yum库,所以运行环境只能采用离线安装的方式,我总结了一下本次的安装经过,希望对需要的人有所帮助。一、安装gcc查看gcc版本要求…

牛客网Python篇数据分析习题(五)

1.现有牛客网12月每天练习题目的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔): user_id:用户id question_id:问题编号 result:运行结果 date:练习日期 请你统计答对和答错的总数分别是多少。 imp…

态路小课堂丨下一代数据中心100G接口第二篇——SFP-DD封装

100G光模块根据封装模式可分为QSFP28、CXP、CFP、CFP2、FCP4、DSFP和SFP-DD等。态路小课堂之前已经大量介绍了相关内容(。 态路小课堂丨下一代数据中心100G接口——DSFP态路小课堂丨100G解决方案-425G NRZ光模块态路小课堂丨什么是100G QSFP28单波光模块&#xff1f…

为什么要用springboot进行开发呢?

文章目录前言1、那么Springboot是怎么实现自动配置的1.1 启动类1.2 SpringBootApplication1.3 Configuration1.4 ComponentScan1.5 EnableAutoConfiguration1.6 两个重要注解1.7 AutoConfigurationPackage注解1.8 Import(AutoConfigurationImportSelector.class)注解1.9自动配置…

素数相关(结合回文数,合数)线性筛素数(欧拉筛法)Euler【算法模板笔记】

一、朴素筛法(埃拉托斯特尼筛法)Eratosthenes 筛法(埃拉托斯特尼筛法,简称埃氏筛法)时间复杂度是O(nloglogn)不常用,被欧拉筛代替,略二、线性筛素数(欧拉筛法)简介线性筛…

C++007-C++循环结构

文章目录C007-C循环结构for循环for循环举例for循环格式题目描述 输出十次手机号题目描述 打印区间内的整数题目描述 打印字符之间的所有字符题目描述 打印区间内符合条件的整数数数量作业在线练习:总结C007-C循环结构 在线练习: http://noi.openjudge.cn…

HappyAI 算法任务调度平台 - 开篇

HappyAI 算法任务调度平台 - 开篇 HappyAI 算法任务调度平台 - 接入 HappyAI 算法任务调度平台 - 开发 1. 支持不同算法侧接入即算法集群(如:paddle算法平台;mmdetection算法平台) 2. 支持不同相机取流(如&#xff…

启动您的 MySQL 查询:ChatGPT 如何帮助您检索 MySQL 数据

本文涉及到的相关软件,dbForge Studio for MySQL和ChatGPT,在您尝操作前,请务必先确保两个程序都正常运作哦,废话不多说,开始上干货! Devart 提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在…

msvcr120.dll下载官网,如何处理msvcr120.dll丢失

msvcr120.dll下载官网?目前msvcr120.dll是没有官网的!MSVCR120.dll是Microsoft Visual C Redistributable安装程序的一部分,通常在运行依赖于Visual C库的应用程序时需要该文件。所以不要相信网上那些写着所谓的官网,下面给大家分…

Sentinel源码阅读

基础介绍 Sentinel 的使用可以分为两个部分: 核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持(见 主流框架适配&…

电子纸墨水屏的现实应用场景

电子纸挺好个东西,大家都把注意力集中在商超场景 其实还有更多有趣的场景方案可用,价值也不小,比如: 一、仓库场景 通过亮灯拣选,提高仓库作业效率 二、仓库循环使用标签 做NFC类发卡式应用,替代传统纸…

Python中ArcPy将多张栅格图像分割为多个网格小块的方法

本文介绍基于Python中的ArcPy模块,依据渔网的矢量数据文件或通过手动划分小方格的方法,批量将大量栅格图像分割为多个矩形小栅格的方法。 首先明确一下我们的需求。现有同一区域内的多张栅格遥感影像,我们希望对于每一景栅格遥感影像而言&…

QML- 信号和事件系统

QML- 信号和事件系统一、概述二、信号事件处理系统使用1. 用信号处理器接收信号2. 信号处理程序3. 使用Connections 类型4. 附加信号处理程序三、向自定义QML类型添加信号四、将信号连接到方法和信号1. 信号与信号的连接一、概述 应用程序和用户界面组件需要相互通信。例如&am…

数据迁移——技术选型

日常我们在开发中,随着业务需求的变更,重构系统是很常见的事情。重构系统常见的一个场景是变更底层数据模型与存储结构。这种情况下就要对数据进行迁移,从而使业务能正常支行。 背景如下:老系统中使用了mongo数据库,由…