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

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Oracle实现高可用性的工具(负载均衡/故障切换)

微信截图_20230519020848.png


1 Oracle RAC


多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储。

1.png

故障转移

Oracle Net中实际应用了两种连接故障转移功能。

2.png

连接时的故障转移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)

3.png

SCAN listener以及SCAN虚拟IP地址(SCAN VIP)同时启动

SCAN listener的运行节点中发生故障的话,就会在其他节点中通过SCAN VIP以及set来重启

4.png

通过DNS使得1个SCAN主机名对应多个SCAN VIP

5.png

客户端负载平衡将在集群内的全部 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数据库的读负载。

6.png


负载均衡-读写分离

某机房一个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将智能负载平衡和客户端故障切换的概念扩展至全局分布式环境,在该环境中有两个或更多的可用于保持可用性的故障切换目标。

7.png


GSM:

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

gsm的职责如下:


提供客户端连接时的负载均衡

提供service级别的负载均衡,故障转移

创建 run time LBA(load balancing advisory),并分发到所有的客户端

监控数据库实例的可用性和全局服务的可用性,并在失败的时候通知客户端

作为区域的监听,用户客户端连接global service


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
弹性计算 tengine 负载均衡
slb高可用性
【11月更文挑战第4天】
61 1
|
1月前
|
弹性计算 负载均衡 容灾
slb单点故障风险
【11月更文挑战第3天】
109 52
|
16天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
62 11
|
20天前
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
40 13
|
21天前
|
安全 测试技术 网络安全
slb模拟故障场景
slb模拟故障场景
33 7
|
1月前
|
弹性计算 运维 监控
SLB-Backend的高可用性
【10月更文挑战第19天】
48 5
|
2月前
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
3月前
|
负载均衡 网络协议 Unix
Nginx负载均衡与故障转移实践
Nginx通过ngx_http_upstream_module模块实现负载均衡与故障转移,适用于多服务器环境。利用`upstream`与`server`指令定义后端服务器组,通过`proxy_pass`将请求代理至这些服务器,实现请求分发。Nginx还提供了多种负载均衡策略,如轮询、权重分配、IP哈希等,并支持自定义故障转移逻辑,确保系统稳定性和高可用性。示例配置展示了如何定义负载均衡设备及状态,并应用到具体server配置中。
|
4月前
|
消息中间件 负载均衡 Kafka
Kafka 实现负载均衡与故障转移:深入分析 Kafka 的架构特点与实践
【8月更文挑战第24天】Apache Kafka是一款专为实时数据处理和流传输设计的高性能消息系统。其核心设计注重高吞吐量、低延迟与可扩展性,并具备出色的容错能力。Kafka采用分布式日志概念,通过数据分区及副本机制确保数据可靠性和持久性。系统包含Producer(消息生产者)、Consumer(消息消费者)和Broker(消息服务器)三大组件。Kafka利用独特的分区机制实现负载均衡,每个Topic可以被划分为多个分区,每个分区可以被复制到多个Broker上,确保数据的高可用性和可靠性。
116 2

推荐镜像

更多