Oracle实现高可用性的工具(负载均衡/故障切换)
Oracle实现高可用性的工具(负载均衡/故障切换)
- 1 Oracle RAC
- 故障转移
- 负载均衡
- 2 Data Guard
- 负载均衡-读写分离
- Data Guard Broker
- 3 GDS
- GSM:
| 连接管理工具 | 主要功能 |
|---|---|
| Data Guard Broker | 功能是监控Data Guard状态,当主库异常时自动切换角色 |
| GSM 全局服务管理器 | GSM 就是―全球监听器,它了解实时负载特征和复制数据库上的用户定义的服务布置策略。这些 GSM 有助于执行 GDS 的数据库间服务故障切换和负载平衡。 |
| Oracle Net Services | Oracle Net Services 为数据库连接提供了连接负载均衡。 |
| 负载均衡顾问程序 | Oracle 真正应用集群提供了一个负载均衡顾问程序。RAC 按每个提供服务的实例持续监视针对每个服务执行的负载。 |
| Oracle Clusterware | CRS主要完成集群成员管理、心跳监控、故障切换等功能。Oracle Clusterware 用于监管 Oracle Real Application Cluster 数据库。 |
| VIP | 1. 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 IP | scan,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
相关文章:
Oracle实现高可用性的工具(负载均衡/故障切换)
Oracle实现高可用性的工具(负载均衡/故障切换)1 Oracle RAC故障转移负载均衡2 Data Guard负载均衡-读写分离Data Guard Broker3 GDSGSM:连接管理工具主要功能Data Guard Broker功能是监控Data Guard状态,当主库异常时自动切换角色…...
图解经典电路之OCL差分功放-三极管分立器件电路分析
下面从简到繁,从框架到细节的顺序讲解电路。即先讲框架,然后逐渐添加电路细节,所以大家跟上思路。 1、第一步,尽可能的抽象这个电路,等效如下: 图二 OCL等效电路 整个OCL电路,可以等效为一个大功率的运放,加上几个电阻电容构成了一个同向放大器,就是这么简单。 为了便…...
thymeleaf模板注入学习与研究--查找与防御
一、日常编码中常见的两种漏洞场景 1.1 模板参数外部可控 RequestMapping("/path")public String path(RequestParam String lang) {return lang ;}实际开发过程中 依靠我丰富的想象力只能想出 换主题 这种场景下可能会出现 大佬们自行脑补吧。 1.2 使用GetMappin…...
第七章:Linux最小化搭建环境解说2
配置IP地址:我们先要到网卡配置文件夹里,路径是/etc/sysconfig/network-scripts/,有点长,不过没事,我们要学会习惯,这还是经常用的。然后就是用ls命令查看下面有什么,只有一个文件ifcfg-ens160&…...
两道链表经典算法题---链表有无环(基础+进阶)
生活就像一盒巧克力,你永远不知道你会得到什么。——《阿甘正传》目前自己粗略的学完数据结构,正在开始刷算法题目。个人觉得算法是一个积累,循序渐进的的过程,需要不断加量,进而达到所谓的质。链表作为数据结构一个重…...
2023/1/14总结
今天学习的是c语法知识。 容器arry: 通俗来说这个容器就i是c语言的数组,和C中vevtor不同,arry是定长度的,而vector是动态数组。头文件为:<arry> 初始化: arry<数据类型,你所要声明…...
Python 之 NumPy 统计函数、数据类型和文件操作
文章目录一、统计函数1. 求平均值 mean()2. 中位数 np.median3. 标准差 ndarray.std4. 方差 ndarray.var()5. 最大值 ndarray.max()6. 最小值 ndarray.min()7. 求和 ndarray.sum()8. 加权平均值 numpy.average()二、数据类型1. 数据存储2. 定义结构化数据3. 结构化数据操作三、…...
互联网新时代要到来了(一)什么是Web3.0?
什么是Web3.0? tips:内容来自百度百科、知乎、搜狐新闻、李留白公众号、CSDN「Meta.Qing」博客等网页 什么是Web3.0?1.什么是Web3.0(概念介绍)?2.Web3.0简单理解3.Web3.0的技术特点4.Web3.0项目1.什么是Web3.0(概念…...
[Yocto] 直接向deploy/images目录部署binary
最近用yocto的时候碰到一个问题,有一些IP的FW binary是从别的地方直接拿来的,没有source code,有一个需求就是需要把它用wks script的方式把它们打包到最后的image里,这篇文章就是来谈谈这个问题。 yocto patch/deploy等做了什么 首先,虽然我们的code,bbfile,或者说pa…...
HarmonyOS Connect原子化服务功能开发(Wi-Fi/Combo)设备控制开发与实现(二)
规设备控制 在“device”目录下的“DeviceApplication.java”文件中,在onInitialize函数中初始化应用。示例代码如下: Override public void onInitialize() {AiLifeServiceHelper.initApplication(this);DeviceHandlerAbility.register(this, "&qu…...
浅析 Makefile
Makefile逻辑 Makefile就是将一系列的工作流串在一起自动执行,构成Makefile最基本的要素是目标、依赖、命令。也就是为了实现目标需要哪些依赖并执行什么样的命令。 target: dependences1 dependences2 ... command1 command2 ...其中,target表示要生…...
保护品牌线上声誉的5种方法
我们如今生活在一个搜索便捷的世界,对于一个企业和个人来说,品牌的线上声誉也尤为重要。在客户考虑与您的公司开展业务之前,他们理所当然会先使用众多软件和平台搜索相关信息,以帮助他们了解和做决定。 因此,您的品牌…...
Java多重选择结构,超详细整理,适合新手入门
目录 一、什么是多重选择结构? 二、if 语句的语法 1、什么是嵌套if语句? 2、if 语句循环基本用法: 3、案例: 二、if...else多重选择结构语法 1、什么是if-else语句? 2、if...else 循环基本用法 3、案例&#…...
SCI写作,一定要避开这些“雷点”!
SCI论文写作中,除了要符合各部分的写作要求,还有许多细节问题需要我们注意,不然可能一不小心就会“踩雷”。 今天我们就来和大家分享SCI各个部分写作时的注意事项。 下面就进入正题! SCI写作注意事项 01 标题的拟定 1.避免使用无…...
3GPP-NR Band14标准定义频点和信道(3GPP V17.7.0 (2022-12))
Reference test frequencies for NR operating band n14 Table 4.3.1.1.1.14-1: Test frequencies for NRoperating band n14 and SCS 15 kHz CBW [MHz]carrierBandwidth...
分库分表索引设计:分布式环境下的 主键索引、二级索引、全局索引的最佳设计实践
文章目录主键选择索引设计全局表唯一索引总结结语主键选择 对主键来说,要保证在所有分片中都唯一,它本质上就是一个全局唯一的索引。如果用大部分同学喜欢的自增作为主键,就会发现存在很大的问题。 因为自增并不能在插入前就获得值…...
2023年全国最新保安员精选真题及答案
百分百题库提供保安员考试试题、保安职业资格考试预测题、保安员考试真题、保安职业资格证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、单选题(1-480题)以下备选答案中只有一项最符合题目要求&a…...
计算机网络之http07 http2,http3
HTTP1.2 http1.2都做了哪些优化 (1)头部压缩 使用HPACK压缩头部 头部冗长,大量重复字段 (2)二进制帧 将报文头部和内容字符编码改为二进制格式 字符编码未压缩 (3)并发传输 解决h1.1 队头阻塞问题,多车道 …...
内网渗透(二十五)之Windows协议认证和密码抓取-使用Hashcat和在线工具破解NTLM Hash
系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...
TongWeb8防止System.exit代码导致的进程停止
现象:当应用中存在System.exit 、Runtime.exit代码执行时,会导致TongWeb进程停止,从而产生如下日志:2023-02-14 09:47:36 [WARN] - The web application [webtest01] is still processing a request that has yet to finish. This…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
