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

一、重新启动集群节点

要重新启动集群节点,请关闭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将允许这两个分区发生分歧(并且最终会生成两个不可能重新分区的数据库自动合并)。

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏VMCloud

【解析向】腾讯云的Windows Server日志配置收集工具是个什么鬼?(2)

继上一篇,上一篇重点介绍了腾讯云Windows Server日志收集工具的“场景”功能,那么场景功能究竟是以什么标准来分级的呢?

4077
来自专栏腾讯Bugly的专栏

Android 插件技术实战总结

前言 安卓应用开发的大量难题,其实最后都需要插件技术去解决。 现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家...

3756
来自专栏沃趣科技

沃趣科技火线救援某公安系统核心业务数据

求助电话 只剩下键盘敲打声的办公室,被一个突如其来的电话打破了宁静。电话那头,是某公安客户的紧急求助。 案发现场 其核心数据库,由于存储突然断电,导致数据库实例...

3527
来自专栏CSDN技术头条

RebornDB:下一代分布式Key-Value数据库

现实世界有许多的Key-Value数据库,它们都被广泛应用于很多系统。比如,我们能够用Memcached数据库存储一个MySQL查询结果集给后续相同的查询使用,...

28710
来自专栏一名叫大蕉的程序员

分布式文件系统.get(V2)No.106

2018年9月28号,我估计会记得很久这一天,因为那天刚刚好是我来西厂的一周年,那天刚刚好是农历生日,刚刚好那天晚上我挖了一个大坑,跟遣怀师兄和小美姐姐一起填坑...

1092
来自专栏Java技术分享

java系统高并发的解决方案

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求...

7098
来自专栏携程技术中心

干货 | Android工程模块化平台的设计

1563
来自专栏思考的代码世界

Python网络数据采集之创建爬虫|第00天

开始本系列的文章时,可能你需要了解一下Python的基础知识,熟悉Python的基本编程,了解一些网络知识等。如果不是特别了解,可以看看我的Python基础系列...

4165
来自专栏H2Cloud

游戏服务器设计之任务系统

游戏服务器设计之任务系统 介绍 任务系统是游戏中最重要的系统之一,本文旨在设计一个轻量清晰的任务系统。通用易扩展是本系统关注的重点。任务系统中当角色的条件满足时...

6524
来自专栏CDA数据分析师

案例分析:基于消息的分布式架构

美国计算机科学家,LaTex的作者Leslie Lamport说:“分布式系统就是这样一个系统,系统中一个你甚至都不知道的计算机出了故障,却可能导致你自己的计算...

2668

扫码关注云+社区