跳到内容
标志
雷竞技下载官网Percona XtraDB集群
崩溃恢复
初始化搜索
    雷竞技下载官网percona / pxc-docs
    雷竞技下载官网percona / pxc-docs
    • 首页
      • 关于Perc雷竞技下载官网ona XtraDB集群
      • 雷竞技下载官网Percona XtraDB集群限制
      • 了解版本号
      • Percona XtraDB集群快速启动指南雷竞技下载官网
      • 安装Percon雷竞技下载官网a XtraDB集群
      • 为写集复制配置节点
      • 引导第一个节点
      • 向集群中添加节点
      • 验证复制
      • 高可用性
      • PXC严格模式
      • 在线模式升级
      • 在线方案升级(OSU)的非阻塞操作(NBO)方法
      • 安全基础知识
      • 确保网络安全
      • 加密PXC流量
      • 使AppArmor对
      • 启用SELinux
      • 状态快照传输
      • 雷竞技下载官网Percona XtraBackup SST配置
      • 重新启动集群节点
      • 集群故障转移
      • raybet雷竞技竞猜在线官网监视集群
      • Percona XtraDB集群中雷竞技下载官网的认证
      • 雷竞技下载官网Percona XtraDB集群线程模型
      • 理解GCache和记录集缓存
      • GCache加密和Write-Set缓存加密
      • 性能模式检测
      • 静止数据加密
      • 升级Percon雷竞技下载官网a XtraDB集群
      • 崩溃恢复
        • 场景一:A节点安全停止
        • 场景2:两个节点优雅停止
        • 场景3:所有三个节点都被优雅地停止
        • 场景四:集群中有一个节点消失
        • 场景5:集群中消失2个节点
        • 场景6:所有节点在没有适当的关机程序的情况下宕机
        • 场景7:集群因脑裂而失去主状态
      • 在CentOS上配置雷竞技下载官网Percona XtraDB集群
      • 在Ubuntu上配置雷竞技下载官网Percona XtraDB Cluster
      • 设置Galera仲裁员
      • 如何在一台机器上搭建三节点集群
      • 如何在EC2环境下搭建三节点集群
      • 使用HAProxy进行负载均衡
      • 使用ProxySQL进行负载平衡
      • ProxySQL管理实用程序
      • 使用ProxySQL设置测试环境
      • 发行说明索引
      • 雷竞技下载官网Percona XtraDB集群8.0.31-23 (2023-03-14)
      • 雷竞技下载官网Percona XtraDB集群8.0.30-22。医学博士(2022-12-28)
      • 雷竞技下载官网Percona XtraDB集群8.0.29-21 (2022-09-12)
      • 雷竞技下载官网Percona XtraDB集群8.0.28-19.1 (2022-07-19)
      • 雷竞技下载官网Percona XtraDB集群8.0.27-18.1
      • 雷竞技下载官网Percona XtraDB集群8.0.26-16.1
      • 雷竞技下载官网Percona XtraDB集群8.0.25-15.1
      • 雷竞技下载官网Percona XtraDB集群8.0.23-14.1
      • 雷竞技下载官网Percona XtraDB集群8.0.22-13.1
      • 雷竞技下载官网Percona XtraDB集群8.0.21-12.1
      • 雷竞技下载官网Percona XtraDB集群8.0.20-11
      • 雷竞技下载官网Percona XtraDB集群8.0.20-11.3
      • 雷竞技下载官网Percona XtraDB集群8.0.20-11.2
      • 雷竞技下载官网Percona XtraDB集群8.0.19-10
      • 雷竞技下载官网Percona XtraDB集群8.0.18-9.3
      • wsprep状态变量索引
      • wsprep系统变量的索引
      • wsrep_provider选项的索引
      • PXC创建的文件索引
      • 常见问题
      • 术语表
      • 版权和授权信息
      • 商标政策

    • 场景一:A节点安全停止
    • 场景2:两个节点优雅停止
    • 场景3:所有三个节点都被优雅地停止
    • 场景四:集群中有一个节点消失
    • 场景5:集群中消失2个节点
    • 场景6:所有节点在没有适当的关机程序的情况下宕机
    • 场景7:集群因脑裂而失去主状态

    崩溃恢复¶

    与标准的MySQL复制不同,PXC集群就像一个逻辑实体,它控制每个节点的状态和一致性以及整个集群的状态。这允许比传统异步复制更有效地维护数据完整性,同时不会丢失多个节点上的安全写操作。

    但是,在某些情况下,数据库服务可能会因为没有节点能够为请求提供服务而停止。

    场景一:A节点安全停止¶

    在一个有三个节点的集群(节点a、节点B、节点C)中,有一个节点(例如节点a)被优雅地停止:出于维护、配置更改等目的。

    在这种情况下,其他节点收到来自停止节点的“good bye”消息,集群大小减小;一些属性,如仲裁计算或自动增量被自动更改。当节点A再次启动时,它将基于其节点A加入集群wsrep_cluster_address变量my.cnf.

    如果写集缓存(gcache.size)在节点B和/或C上仍然执行所有的事务,而节点A关闭,连接是可能的坚持.如果坚持是不可能的,由于捐赠的gcache中缺少事务,备用决定是由捐赠和风场自动启动。

    场景2:两个节点优雅停止¶

    类似于场景一:A节点安全停止,集群大小减少到1 -甚至剩下的单个节点C构成了主要组件,并能够为客户端请求提供服务。要将节点返回到集群中,您只需要启动它们。

    然而,当一个新节点加入集群时,节点C将切换到“Donor/Desynced”状态,因为它必须至少向第一个加入节点提供状态传输。在这个过程中仍然可以读/写它,但它可能会慢得多,这取决于在状态传输期间应该发送多少数据。此外,一些负载平衡器可能认为捐赠节点不可操作,并将其从池中移除。因此,最好避免出现只有一个节点处于up状态的情况。

    如果您重新启动节点A,然后重新启动节点B,您可能希望确保注释B没有使用节点A作为状态传输提供者:节点A的gcache中可能没有所需的所有写集。在你的配置文件中指定节点C作为供体,并启动mysql服务:

    $systemctl开始mysql

    另请参阅

    Galera文档:wsrep_sst_donor选项

    场景3:所有三个节点都被优雅地停止¶

    集群已经完全停止,问题是重新初始化它。重要的是,PXC节点将其最后执行的位置写入grastate.dat文件。

    通过比较这个文件中的seqno数字,您可以看到哪个是最高级的节点(很可能是最后停止的节点)。集群必须使用此节点进行引导,否则具有更高级位置的节点将不得不执行完整的引导风场加入从低级集群初始化的集群。因此,一些事务将会丢失)。要引导第一个节点,像这样调用启动脚本:

    $systemctl开始mysql@bootstrap.service

    请注意

    即使从最高级的节点引导,其他节点的序列号也会更低。他们仍然需要通过完整的风场因为Galera缓存重启时不保留。

    因此,建议停止对集群的写操作之前其完全关机,使所有节点都能停在同一位置。另请参阅pc.recovery.

    场景四:集群中有一个节点消失¶

    这是当一个节点由于断电、硬件故障、内核恐慌、mysqld崩溃、kill - 9mysqld pid,等等。

    其余两个节点注意到与节点A的连接断开,并开始尝试重新连接。经过多次超时后,节点A被移出集群。仲裁被保存(3个节点中有2个是up的),因此不会发生服务中断。重启后,节点A自动加入场景一:A节点安全停止).

    场景5:集群中消失2个节点¶

    两个节点不可用,其余节点(节点C)不能单独形成仲裁。集群必须切换到非主模式,在这种模式下,MySQL拒绝为任何SQL查询提供服务。在这种状态下,mysqld节点C上的进程仍在运行,可以连接到,但任何与数据相关的语句都失败并报错

    >选择*从test.sbtest1;
    错误消息
    错误1047 (08S01): wsprep还没有为应用程序使用准备节点

    在节点C决定不能访问节点A和节点b之前,可以进行读操作。

    只要其他节点可用,集群就会自动重新形成。如果节点B和节点C只是从节点A的网络断开,但它们仍然可以相互联系,它们将继续工作,因为它们仍然形成quorum。

    如果节点A和节点B崩溃,您需要手动启用节点C上的主组件,然后才能启动节点A和节点B。执行此操作的命令是:

    >集全球wsrep_provider_options=“pc.bootstrap = true”;

    这种方法只有在其他节点关闭之前才有效!否则,您将得到两个具有不同数据的集群。

    另请参阅

    向集群中添加节点

    场景6:所有节点在没有适当的关机程序的情况下宕机¶

    在数据中心电源故障或遇到MySQL或Galera错误时,可能会出现这种情况。此外,当集群检测到每个节点都有不同的数据时,可能会导致数据一致性受损。的grastate.dat文件未更新,且不包含有效序列号(seqno)。它可能是这样的:

    $ cat /var/lib/mysql/grastate.dat # GALERA保存状态版本:2.1 uuid: 220dcdcb-1629-11e4-add3-aec059ad3734 seqno: -1 safe_to_bootstrap: 0

    在这种情况下,您不能确保所有节点都是一致的。我们不能使用safe_to_bootstrap变量来确定最后一个事务被提交到的节点0对于每个节点。除非您开始,否则从这样的节点引导的尝试将会失败mysqld与——wsrep-recover参数:

    $mysqld——wsrep-recover

    在输出中搜索报告恢复位置的行,在节点UUID (1122在这种情况下):

    预期的输出
    ……[注]wsprep:恢复位置:220dcdcb-1629-11e4-add3-aec059ad3734:1122…

    被恢复位置标记为最大数字的节点是最佳引导候选节点。在其grastate.dat文件,将safe_to_bootstrap变量设置为1.然后,从这个节点开始引导。

    请注意

    中标记为安全的节点在关闭后,可以从该节点启动grastate.dat文件。

    ...Safe_to_bootstrap: 1…

    另请参阅

    Galera文档介绍Galera集群中的安全引导功能


    在最近的加莱拉版本中,选项pc.recovery(默认启用)将集群状态保存到一个名为gvwstate.dat在每个成员节点上。正如这个选项的名称所示(pc - primary component),它只保存处于primary状态的集群。该文件的示例内容如下所示:

    Cat /var/lib/mysql/gvwstate.dat my_uuid: 76de8ad9-2aac-11e4-8089-d27fd06893b9 #vwbeg view_id: 3 6c821ecc-2aac-11e4-85a5-56fe513c651f 3 bootstrap: 0 member: 6c821ecc-2aac-11e4-85a5-56fe513c651f 0 member: 6d80ec1b-2aac-11e4-8d1e-b2b2f6caf018 0 member: 76de8ad9-2aac-11e4- 8d1e- b2b2f6caf09 0 #vwend

    我们可以看到一个三个节点的集群,所有成员都是向上的。多亏了这个新特性,一旦所有成员开始相互看到,节点将尝试恢复主组件。这使得PXC集群自动从关机状态恢复,无需任何手动干预!在日志中我们将看到:

    场景7:集群因脑裂而失去主状态¶

    为了本例的目的,让我们假设我们有一个由偶数个节点组成的集群:例如6个。其中三个在一个位置,而另外三个在另一个位置,它们失去了网络连接。避免这种拓扑是最佳实践:如果不能有奇数个实际节点,可以使用一个额外的仲裁器(garbd)节点或设置一个更高的pc。一些节点的权重。但是当大脑以任何方式分裂时,没有一个被分离的组可以维持quorum:所有节点必须停止服务请求,集群的两个部分将不断尝试重新连接。

    如果希望在网络链路恢复之前恢复服务,可以使用中所述的相同命令使其中一个组再次成为主组场景5:集群中消失2个节点

    >集全球wsrep_provider_options=“pc.bootstrap = true”;

    在此之后,您可以在集群的手动恢复部分上工作,而另一半应该能够使用自动重新加入坚持只要网络链路恢复。

    警告

    如果在两个分离的部分上都设置了引导选项,那么最终将得到两个活动的集群实例,数据可能会彼此分离。在这种情况下,在节点重新启动和配置文件中指定的成员重新连接之前,恢复网络链路不会使它们重新连接。

    然后,由于Galera复制模型真正关心数据一致性:一旦检测到不一致,由于数据差异而无法执行行更改语句的节点将执行紧急关闭,并且将节点带回集群的唯一方法是通过full风场

    基于Percona数据库性能博客的材料雷竞技下载官网

    本文基于Galera复制的博客文章-如何恢复PXC集群Przemysław Malkowski: https://www.雷竞技下载官网percona.com/blog/2014/09/01/galera-replication-how-to-recover-a-pxc-cluster/

    联系我们

    如需免费技术帮助,请访问Percona雷竞技下载官网社区论坛.

    要报告错误或提交功能请求,请打开JIRA票。

    付费支持而且管理或咨询服务,请联系雷竞技下载官网Percona销售.


    最近更新:2023-01-20
    雷竞技下载官网Percona LLC和/或其关联公司©2023
    用MkDocs材料

    饼干的同意

    我们使用cookie来识别您的重复访问和偏好,以及衡量我们文档的有效性,以及用户是否找到他们正在搜索的内容。在您的同意下,您正在帮助我们改进我们的文档。

    Baidu
    map