Percona XtraDB Cluster集群节点重启及故障转移

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

一、重新启动集群节点

要重新启动集群节点,请关闭MySQL并重新启动它。该节点将离开集群(并且法定人数的总计数应该减少)。发布命令 systemctl restart mysql

当它重新加入时,节点应该使用IST进行同步。如果gcache在整个集群中的任何其他节点上的文件中找不到IST所需的更改集,则会执行SST。因此,从集群的角度来看,重新启动集群节点以进行滚动配置更改或软件升级非常简单。

注意
   如果您重新启动具有无法加载MySQL配置更改的节点,则Galera将删除该节点的状态并强制该节点的SST。

二、集群故障转移

集群成员资格仅由哪些节点连接到集群的其余部分来确定; 没有配置设置明确定义所有可能的集群节点的列表。因此,每次节点加入集群时,集群的总大小都会增加,并且节点离开(优雅地)时大小会减小。

集群的大小用于确定实现法定人数所需的投票。当一个或多个节点被怀疑不再是集群的一部分时(他们没有回应),将进行法定人数投票。此无响应超时是evs.suspect_timeout在设置wsrep_provider_options(默认值为5秒),并且当一个节点出现异常,写操作将被阻止在集群上的时间比超时稍长。

一旦确定某个节点(或多个节点)断开连接,则其余节点将投出法定票数,并且如果断开连接之前的大多数节点仍处于连接状态,则该分区保持连接状态。在网络分区的情况下,一些节点将在网络断开的每一侧处于活动并处于活动状态。在这种情况下,只有法定人数会继续。没有法定人数的分区将更改为非主要状态。

因此,在2节点集群中无法实现安全的自动故障切换,因为一个节点的故障将导致其余节点变为非主节点。而且,任何一个节点数量为偶数的节点(比如两个不同交换机中的两个节点)都有一定的分裂情况的可能性,当两个节点之间的连接丢失时,任何一个分区都不能保留法定数量投票,而成为非主要分区。

因此,对于自动故障转移,建议使用3s规则。它适用于各种级别的基础架构,具体取决于集群散布多远以避免单点故障。例如:

   单个交换机上的集群应该有3个节点
   跨越集群的交换机应平均分布在至少3台交换机上
   跨越网络的集群应该跨越至少3个网络
   跨越数据中心的集群应至少跨越3个数据中心

这些规则将防止裂脑情况并确保自动故障切换正常工作。

1、使用仲裁员

如果添加第三个节点,交换机,网络或数据中心的成本太高,则应使用仲裁器。仲裁者是可以接收和转发复制的集群的投票成员,但它不会保留任何数据,并且运行自己的守护进程而不是mysqld。即使是第三位的仲裁员也可以将分裂脑保护添加到仅分布在两个节点/位置的集群中。

2、恢复非主集群

需要注意的是,3s的规则仅适用于自动故障转移。如果是双节点集群(或者在其他一些中断使少数节点处于活动状态的情况下),则一个节点的故障将导致另一节点成为非主节点并拒绝操作。但是,您可以使用以下命令从非主状态恢复节点:

SET GLOBAL wsrep_provider_options = 'pc.bootstrap = true' ;

这将告诉节点(以及所有节点仍然连接到其分区)它可以成为主集群。但是,只有当您确定没有其他分区在主服务器上运行时才能执行此操作,否则Percona XtraDB Cluster将允许这两个分区发生分歧(并且最终会生成两个不可能重新分区的数据库自动合并)。

例如,假设有两个数据中心,其中一个是主要数据中心,另一个数据中心用于灾难恢复,每个数据中心都有偶数个节点。当额外仲裁器节点仅在主数据中心中运行时,以下高可用性功能将可用:

   主数据中心或辅助数据中心内任何一个或多个节点的自动故障转移
   辅助数据中心的故障不会导致主数据中心失效(由于有仲裁节点)
   主数据中心的故障将使辅助中心处于非主要状态。
   如果已执行灾难恢复故障转移,则可以让辅助数据中心使用单个命令引导自己,但灾难恢复故障转移仍在您的控制之中。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
网络安全 API CDN
如何将Cloudflare HTTPS的SSL证书更换为Google签发的
将Cloudflare HTTPS的SSL证书更换为Google签发的
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
算法 C++ 开发者
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
363 0
|
设计模式 Java 数据库
【设计模式】JAVA Design Patterns——Converter(转换器模式)
转换器模式旨在实现不同类型间的双向转换,减少样板代码。它通过通用的Converter类和特定的转换器(如UserConverter)简化实例映射。Converter类包含两个Function对象,用于不同类型的转换,同时提供列表转换方法。当需要在逻辑上对应的类型间转换,或处理DTO、DO时,此模式尤为适用。
【设计模式】JAVA Design Patterns——Converter(转换器模式)
|
域名解析 网络协议 网络安全
WordPress搭建个人博客
这篇文章将手把手地指导你如何快速完成WordPress的搭建。你可以利用WordPress搭建个人博客,甚至企业官方网站。只要你跟着本文的步骤走,即使小白也能轻松搞定WordPress网站搭建。首选你需要购买一个vps,并将你的域名解析到vps;然后连接你的VPS,在vps上执行命令一键安装WordPress;再接下来就是初始化你的WordPress了,安装Argon模板、安装RankMath SEO插件、安装webp图片速度优化插件
1113 2
WordPress搭建个人博客
|
消息中间件 物联网 关系型数据库
MQTT常见问题之消息对列mqtt的历史数据查看失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
中间件 Go API
【Go 语言专栏】Go 语言中的 Web 框架比较与选择
【4月更文挑战第30天】本文对比了Go语言中的四个常见Web框架:功能全面的Beego、轻量级高性能的Gin、简洁高效的Echo,以及各自的性能、功能特性、社区支持。选择框架时需考虑项目需求、性能要求、团队经验和社区生态。开发者应根据具体情况进行权衡,以找到最适合的框架。
1775 0
|
JSON 编解码 缓存
探究|Go JSON 三方包哪家强?
本文作者从评判标准、功能评测、性能评测等多方面剖析三方库哪些家强,并给出了比较务实的建议。
探究|Go JSON 三方包哪家强?
|
JSON Go 数据处理
JSON数据处理:匿名结构体助你起飞
JSON数据处理:匿名结构体助你起飞
400 0

热门文章

最新文章