Percona XtraDB Cluster集群节点重启及故障转移-阿里云开发者社区

开发者社区> leshami> 正文

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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4617 0
容器服务节点重启操作最佳实践
直接重启节点可能会导致集群出现异常。比如,对于 Swarm Mode 集群内的 Manager 节点,如果 Manager 健康节点数小于 2,则可能会导致集群无法自愈,最终导致集群不可用。本文结合阿里云历史案例经验,说明了在对容器服务进行主动运维等场景下,需要重启节点时的操作最佳实践。
3642 0
Hadoop学习笔记(二)设置单节点集群
本文描述如何设置一个单一节点的 Hadoop 安装,以便您可以快速执行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS)。 参考官方文档:Hadoop MapReduce Next Generation - Setting up a Single Node Cluster. Hadoop版本:Apache Hadoop 2.5.1 系统版本:CentOS 6.5,内核(uname -r):2.6.32-431.el6.x86_64 系统必备组件 支持的系统平台 GNU/Linux 作为开发和生产的平台,毫无疑问。
584 0
制作ACK集群自定义节点镜像的正确姿势
随着云原生时代的到来,用户应用、业务上云的需求也越来越多,不同的业务场景对容器平台的需求也不尽相同,其中一个非常重要的需求就是使用自定义镜像创建ACK集群。 ACK支持用户使用自定义镜像创建Kubernetes集群,但用户在制作打包自定义镜像时,往往会遇到以下痛点:(1)人工操作步骤,效率低(2)镜像变更历史记录缺失,不便于故障定位(3)无法对自定义镜像进行校验并判断是否符合ACK集群节点要求 基于以上痛点,我们开源了ack-image-builder项目帮助用户快速制作符合ACK集群节点要求的自定义镜像。
3632 0
+关注
leshami
传播知识,分享快乐!十年以上数据库,系统运维与管理,性能优化经验。全部文章,欢迎扩散,转载请注明出处!
634
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载