Cache数据库的高可用架构设计与选择

article/2025/7/13 4:11:23

一、Cache数据库的高可用架构

        对于Cache数据库的高可用性最佳实践,官方提供了以下几种策略:

集成基于操作系统级HA软件以及搭配共享存储的故障转移集群

        基于操作系统的HA软件,搭配共享存储的方案,Cache实例安装在共享存储中,当故障发生时,在新的主节点上重启Cache,重启时,Cache实例会自动执行正常的启动恢复,包括WIJ,日志。

缺点:

需要第三方HA软件支持

切换流程由操作系统HA操作,可能会比较漫长

共享存储发生故障时,会导致数据灾难。

集成基于虚拟化平台的HA功能

        监控运行在虚拟化平台上Cache实例虚拟机,当故障发生时在另一台Esxi主机拉起之前运行Cache实例虚拟机,不仅时间长,也不能及时响应,而且共享存储故障也是灾难的。

缺点:

需要第三方HA软件支持

切换流程由操作系统HA操作,可能会比较漫长

共享存储发生故障时,会导致数据灾难。

基于Cache的镜像集群自动故障转移

        主备镜像分配至不同物理主机,每个故障转移成员在镜像集群中维护每个数据副本,数据更新只在主节点,备用节点通过日志文件与主节点保持同步,当主节点发生故障时,备用节点会自动快速接管并成为主实例。

二、高可用架构的选择

高可用架构选择

        相较于以上集中高可用方案,最后的无共享模式的镜像集群成为实现Cache数据库高可用性的首选架构,相较于其他高可用架构,它至少具备以下几项优势:

无共享架构,消除存储单点故障问题
镜像副本兼顾报表查询以及数据备份功能
自动迅速故障转移
可灵活线性扩展
额外的及高可用性提升

        无论您对Cache数据库的高可用性采取何种方法,企业缓存协议 (ECP) 都可用于在用户和数据库服务器之间提供一层隔离,当数据库服务器出现故障时,用户仍保持与 ECP 应用服务器的连接,在中断期间主动访问数据库的用户会话将暂停,直到数据库服务器通过完成故障转移或重新启动故障系统再次变得可用。

通过ECP连接数据镜像集群

三、Cache数据库镜像集群的规划

镜像集群的组件简介

镜像成员:

        要启用自动故障转移,镜像必须包含两个故障转移成员,物理上独立的系统,每个都托管一个 Caché 实例。

        在任何给定时间,一个故障转移实例充当主要实例,为应用程序提供对镜像中数据库的访问权限,而另一个充当备份实例,维护这些数据库的同步副本,以准备接管作为主要实例。

        当主 Caché 实例变得不可用时,备份将接管,提供对数据库的不间断访问,而没有数据丢失的风险。

        当然镜像成员的类型还分同步和异步,这里不再详细阐述。

ISCA代理:

        一个称为 ISCAgent 的进程在每个镜像成员的主机系统上运行,为镜像成员之间提供了一种额外的通信方式。ISCAgent 提供了一种方法,当两个故障转移成员之间的正常通信中断时,一个故障转移成员可以通过该方法获取有关另一个的信息。ISCAgent 可以向已关闭或断开连接的镜像成员发送数据。代理还参与故障转移决策;例如,与主实例和仲裁器都失去联系的备份可以联系主实例的 ISCAgent(假设主实例的主机系统仍在运行)以确认主实例在接管之前确实已关闭。

仲裁者:

        仲裁器是一个独立的系统,托管一个 ISCAgent,镜像的故障转移成员与其保持持续联系,为他们提供在无法直接通信时安全地做出故障转移决策所需的上下文。一个仲裁器可以服务多个镜像,但是一个镜像一次只能使用一个仲裁器。

        对于一个镜像集群,仲裁器也不是必须的,但强烈建议使用仲裁器,因为它显着增加了可以进行自动故障转移的故障场景的范围。

        镜像集群的物理架构规划

简介

        这是最简单的镜像配置。故障转移成员通过专用网络相互通信,而与它们的外部连接则通过公共网络进行,可选地通过镜像虚拟 IP (VIP)。

使用的配置

VIP

10.1.1.100

仲裁者地址

10.1.1.35

服务器地址

10.1.1.11 10.1.1.10

镜像集群所用私网地址

10.0.0.11 10.0.0.10

ISCAgent地址

10.1.1.11 10.1.1.10

网络讲解

        VIP 要求两个故障转移成员位于同一子网上。

        虽然不是必要的,但建议使用此处描述的用于镜像通信的单独专用 LAN 来优化网络利用率控制。如果不使用这样的 LAN,则应将镜像配置中的镜像私有地址更改为使用蓝色背景上描绘的地址。

仲裁者的网络位置规划

        如果故障转移成员位于一个数据中心,仲裁器可以放在同一个数据中心。在该数据中心内,仲裁者与故障转移成员之间的物理隔离应该与它们彼此之间的物理隔离相同;例如,如果您已将故障转移成员放置在单独的服务器机架中以避免一个机架中的电源或网络问题影响两个成员,那么您应该将仲裁器与这两个机架分开放置。

        如果数据中心使用内部网络在镜像内进行通信,则仲裁器应放置在网络的公共侧,这样内部网络的故障不会使故障转移成员与仲裁器相互隔离。

        如果故障转移成员位于不同的数据中心,则仲裁器应放置在第三个位置。这可能是另一个数据中心、由另一方托管的位置、公共或私有云服务,甚至是系统管理员的家(假设她有可靠的网络)。将仲裁器放置在代表用户社区的位置支持对网络中断的最佳镜像响应。

四、Cache集群故障切换所需要考虑的业务问题

如何保证切换时数据的一致性完整性

安全自动故障转移的要求

        备份 Caché 实例只有在满足以下两个条件的情况下才能自动接管主实例:

        备份实例已从主实例接收到最新的日志数据。

        此要求保证在故障发生时,主数据库上进行的所有持久更新都已经或将要对备份数据库上进行,从而确保不会丢失任何数据。日常维护中也可以通过mirroe进程的状态监控器进行备份镜像状态监控,如下图所示,FailOver B日志同步状态为Active:


Status of Mirror MIR25FEB at 17:17:53 on 02/27/2014Member Name+Type Status Journal Transfer Dejournaling-------------------------- --------- ---------------- --------------MIR25FEB_AFailover Primary N/A N/AMIR25FEB_BFailover Backup Active Caught upMIR25FEB_CDisaster Recovery Connected Caught up Caught upMIR25FEB_DRead-Only Reporting Connected Caught up Caught upArbiter Connection Status:Arbiter Address: 127.0.0.1|2188Failover Mode: Arbiter ControlledConnection Status: Both failover members are connected to the arbiterPress RETURN to refresh, D to toggle database display, Q to quit,or specify new refresh interval <60>

        主实例不作为镜像集群的主镜像对外提供服务。(不到万不得已不要手工切换镜像角色)

        此要求消除了两个故障转移成员同时充当主要成员的可能性,这可能导致逻辑数据库降级和完整性丧失。

        Failover备份镜像挂起或因为网络问题失联会造成的影响

        在正常镜像操作期间,备份故障转移成员的日志传输状态为Active,这意味着它已从主节点接收到所有日志数据并与主节点同步。如果活动备份未在服务质量 (QoS) 超时(默认8秒)内确认从主服务器接收到新数据,则主服务器撤销备份的活动状态,断开备份并暂时进入故障状态。当处于故障状态时,主节点不会提交任何新的日志数据(可能会导致应用程序暂停).

Backup Loses Connection to Primary

If the backup loses its connection to the primary, or exceeds the QoS timeout waiting for a message from the primary, and learns from the arbiter that the arbiter has also lost its connection to the primary or exceeded the QoS timeout waiting for a response from the primary, the backup takes over as primary and switches to agent controlled mode. When connectivity is restored, if the former primary is still operating in trouble state, the new primary forces down.

If the backup learns that the arbiter is still connected to the primary, it no longer considers itself active, switches to agent controlled mode, and coordinates with the primary’s switch to agent controlled mode through the arbiter; the backup then attempts to reconnect to the primary.

If the backup has lost its arbiter connection as well as its connection to the primary, it switches to agent controlled mode and attempts to contact the primary’s ISCAgent per the agent controlled mechanics.

        简而言之,如果配置自动故障转移,当备库挂了,主库会hang默认的8秒,然后备库如果不能在8秒内响应,那么备库的活动日志同步状态(Active)就会被撤销,不具备自动故障转移中接管主库的资格,8秒过后主库还会作为主库继续运行,只不过mirror控制模式从仲裁切换到agent。

        可以确定的是 如果配置了自动故障转移,当备库掉线 主库会等8秒,这8秒 主库不会提交任何新的日志,这有可能会导致某些应用的hang,如果8秒内,备库排除故障上线了,那么主库会保持备库日志传输的Active状态(也就是说备库具备接管主库的资格),如果8秒后,备库还是连不上,主库就把备库的日志同步状态标记为落后(不具备接管主库的资格),然后主库接着正常提交日志。当备库排除故障再次连接上主库后,备库会先通过主库上的ISCAgent

        补全自己dang机时间段内的日志以保持和主库的数据同步,当数据都同步后,备库的日志传输就会被标记为Active状态,就具备了自动接管主库的资格,为下一次的自动故障转移做准备。

当发生自动故障切换后镜像集群恢复正常后如何回切

        不需要手动回切,新加入的实例连接上之后自动作为备份镜像,并由镜像集群维护,保持与主库数据的一致性,随时做好下次自动故障切换准备。

常见的自动故障转移情景

        尽管情况和细节各不相同,但有几种主要的主要中断情况,在这些情况下,活动备份故障转移成员会自动接管,如下所示:

通过关闭其 Caché 实例来启动主节点的计划中断(例如出于维护目的)。

发生自动故障转移是因为主备份指示主动备份接管。

由于意外情况,主 Caché 实例挂起。

发生自动故障转移是因为主节点检测到它已挂起并指示活动备份接管。

由于意外情况,主 Caché 实例被强制关闭或完全无响应。

        在这种情况下,主节点无法指示备份节点接管。但是,在从仲裁器得知它也与主服务器失去联系后,或者通过联系主服务器的 ISCAgent 并获得主服务器已关闭的确认后,主动备份将接管。

        主要的存储子系统发生故障。

        存储故障的典型后果是主实例由于 I/O 错误而挂起,在这种情况下,主实例检测到它已挂起并指示活动备份接管(如场景 2 中所示)。但是,在某些情况下,可能适用场景 3 或场景 5 中描述的行为。

        主服务器的主机系统发生故障或变得无响应。

        如果活动备份从仲裁器获悉它也与主服务器失去联系,则会发生自动故障转移。

        如果没有配置仲裁器,或者仲裁器在主主机故障之前变得不可用,则无法进行自动故障转移;在这些情况下,手动强制备份成为主要备份可能是一种选择。

        网络问题隔离了主节点。

        如果配置了仲裁器并且在网络发生故障时两个故障转移成员都连接到它,则主节点将无限期地进入故障状态。

        如果活动备份从仲裁器获悉它也与主服务器失去联系,则会发生自动故障转移。

        如果备份与仲裁器失去联系的同时与主服务器失去联系,则无法进行自动故障转移。如果两个故障转移成员都已启动,则当网络恢复时,备份会联系主节点,然后主节点会恢复作为主节点运行。或者,可以手动指定主节点。

        如果在网络故障之前未配置仲裁器或其中一个故障转移成员与其断开连接,则无法进行自动故障转移,并且主节点继续作为主节点运行。

        不活动的备份(因为它正在启动或已经落后)可以通过联系主节点的 ISCAgent 并获取最新的日志数据来接管上述场景 1 到 4。在方案 5 和 6 下,不活动的备份无法接管,因为它无法联系 ISCAgent;在这些情况下; 手动强制备份成为主要备份可能是一种选择。

        这个对比oracle dg还不一样 ,如果是dg的最大保护,备库挂了,主库一致重连不上,主库就会被lgwr shutdown abort,而这个cache,根据官方文档,如果使用自动故障转移(也就是镜像是Failover模式),那么备库挂了,主库会等Qos超时时间,时间过了,主库也不会自杀,而是继续提供服务


http://www.hkcw.cn/article/HreMXVRuOm.shtml

相关文章

开源协议:构建全球技术协作的基石

文章目录 一、开源协议的本质与存在价值&#xff08;一&#xff09;开源协议的定义与法律属性&#xff08;二&#xff09;开源协议的历史演进&#xff08;三&#xff09;开源协议的核心价值 二、主流开源协议分类与核心特性&#xff08;一&#xff09;宽松协议&#xff08;Perm…

MySQL事务及其原理

事务是一组操作的集合&#xff0c;这组集合要么同时成功&#xff0c;要么同时失败 MySQL事务默认是自动提交的&#xff0c;也就是说每一条sql语句就是一条事务 查看/设置事务提交方式 关闭自动提交只有在其所在的查询窗口有效 select autocommit; --查看提交方式 SET autoc…

Spring生命周期中织入代理逻辑

在Spring生命周期中织入代理逻辑 一&#xff0c;AOP 自动代理的实现机制如何判断某个 Bean 是否需要被代理&#xff1f;代理对象在哪个生命周期节点创建&#xff1f; 二&#xff0c;底层实现逻辑1&#xff0c;自动代理的实现实例化AwareBeanPostProcessorSmartInstantiationAwa…

参数化建模(三):SOLIDWORKS中的参数化应用实例

在现代工程设计领域&#xff0c;参数化设计已成为提升设计效率、优化产品性能、实现智能制造的重要手段。尤其是在三维建模软件SOLIDWORKS中&#xff0c;参数化设计的理念和方法被广泛应用&#xff0c;极大地推动了机械、建筑、电子等行业的创新发展。 那么&#xff0c;什么是…

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

目录 一、STM32G4 电机外设篇&#xff08;二&#xff09; VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP&#xff08;运放&#xff09;3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

KVM 安装 Ubuntu 22

在 KVM 中安装 Ubuntu 22 虚拟机。 首先创建硬盘文件 sudo qemu-img create -f qcow2 /app/vms/ubuntu22.qcow2 100G安装Ubuntu 22 sudo virt-install \--name ubuntu22 \--ram 4096 \--vcpus 2 \--disk path/app/vms/ubuntu22.qcow2,formatqcow2 \--os-type linux \--os-va…

【Python】第二弹:搭建 Python 环境

目录 一、安装 Python 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 二、安装 PyCharm 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 三、PyCharm 基本设置 3.1 设置字体大…

城市内涝精准监测・智能预警・高效应对:治理方案解析

城市化进程加速与极端天气频发叠加&#xff0c;城市内涝对城市安全运行和居民生活的威胁日益凸显。多地频发的强降雨引发严重内涝&#xff0c;"看海"现象、交通瘫痪及财产损失等问题&#xff0c;暴露出传统内涝防治体系在监测精准度、预警及时性和应对高效性上的不足…

解决RAGFlow(v0.19.0)有部分PDF无法解析成功的问题。

ragflow版本为&#xff1a;v0.19.0 1.解析的时候报错&#xff1a;Internal server error while chunking: Coordinate lower is less than upper。 看报错怀疑是分片的问题&#xff0c;于是把文档的切片方法中的“建议文本块大小”数值&#xff08;默认512&#xff09;调小&…

IoTDB 集成 DBeaver,简易操作实现时序数据清晰管理

数据结构一目了然&#xff0c;跨库分析轻松实现&#xff0c;方便 IoTDB “内部构造”管理&#xff01; 随着物联网场景对时序数据处理需求激增&#xff0c;时序数据库与数据库管理工具的集成尤为关键。作为数据资产的 “智能管家”&#xff0c;借助数据库管理工具的可视化操作界…

比较二维结构的尺寸分布

在行列可自由变换的平面上5点结构有34个 其中尺寸在3*3范围内的有7个 在4*4范围内的有14个 在5*5范围内的有13个 现在假设平面上有5个不可分辨的点在随机的运动&#xff0c;这5个点可能的位置关系就只有这34种。现在假设点与点之间的距离是稳定不变的的,且每个状态只出现一次。…

WSL里执行python深度学习的一些方法记录

安装anaconda3&#xff1a; 可以直接从 Download Now | Anaconda 中下载&#xff0c;然后拷贝到WSL环境的某个目录&#xff0c;执行 bash xxxxxxx.sh 即可安装。 启动jupyter notebook&#xff1a; 先conda activate 当前环境&#xff0c;然后pip install jupyter 此时&am…

防爆组合式智能全温振荡防爆培养箱,守护安全场所

品牌&#xff1a;宇晶峰 型号&#xff1a;BGZ-929PY-03ZC 使用温度&#xff1a;4~60C 温度分辨率/波动度/分布精度&#xff1a;0.1C/0.5C/1C(38C时) 回旋幅度/回旋频率范围(r/min&#xff09;&#xff1a;Φ26mm(选配Φ50mm)/30~300(选配5~400) 回旋频率…

如何选择适合的冲压件清洗机?冲压件清洗机的选购指南

冲压件清洗机是工业生产中不可或缺的设备之一&#xff0c;主要用于去除冲压过程中产生的油污、灰尘、碎屑等污染物&#xff0c;确保冲压件的清洁度和质量。适当选择合适的冲压件清洗机对于提高生产效率、降低成本以及保证产品质量都具有重要意义。以下是一份关于如何选择适合的…

2023-2024-2-《移动机器人设计与实践》上机测评

2022-2023-2-移动机器人设计与实践-期末A-CSDN博客 2022-2023-2-移动机器人设计与实践-期末B-CSDN博客 理论和实践分开测评&#xff0c;如下是实践部分 摘要&#xff1a; 《移动机器人设计与实践》期末上机测评要求学生完成配置题和实践题两部分。配置题&#xff08;30分&am…

[HNCTF 2022 Week1]silly_zip

下载附件 解压发现需要密码 用010打开看看&#xff0c;发现是伪加密 改成00点击保存 解压后得到图片 感觉图片看着怪怪的&#xff0c;修改一下高度看看有没有其他线索 把47改成78 最后得到flag

QSS 的选择器

1. 样式表规则 样式表包含了一系列的样式规则&#xff0c;每个样式规则由选择器&#xff08;selector&#xff09;和声明&#xff08;declaration&#xff09;组成。     选择器&#xff1a;指定了受该规则影响的部件。     声明&#xff1a;指定了这个部件上要设置的属性。…

Python 训练营打卡 Day 30-模块和库的导入

模块和库的导入 1.1标准导入 import mathprint("方式1: 使用 import math") print(f"圆周率π的值: {math.pi}") print(f"2的平方根: {math.sqrt(2)}\n") 1.2从库中导入特定项 from math import pi, sqrtprint("方式2&#xff1a;使用 f…

ToolsSet之:渐变色生成工具

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用&#xff0c;应用基本功能介绍可以查看以下文章&#xff1a; Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264 ToolsSet中Media菜单下的Gradient Color工具是一…

智能守护电网安全:探秘输电线路测温装置的科技力量

在现代电力网络的庞大版图中&#xff0c;输电线路如同一条条 “电力血管”&#xff0c;日夜不息地输送着能量。然而&#xff0c;随着电网负荷不断增加&#xff0c;长期暴露在户外的线路&#xff0c;其线夹与导线在电流热效应影响下&#xff0c;极易出现温度异常。每年因线路过热…