崩溃恢复全集群崩溃意味着什么?
从这个节点引导集群可能不安全。它不是最后一个离开集群的,可能不包含所有更新。要在该节点上强制集群引导,请手动编辑graste .dat文件,并将safe_to_bootstrap设置为1
从这个节点引导集群可能不安全。它不是最后一个离开集群的,可能不包含所有更新。要在该节点上强制集群引导,请手动编辑graste .dat文件,并将safe_to_bootstrap设置为1从这个节点引导集群可能不安全。它不是最后一个离开集群的,可能不包含所有更新。要在该节点上强制集群引导,请手动编辑graste .dat文件,并将safe_to_bootstrap设置为1
请注意
要避免这种情况,请在写入集群时正确关闭集群暂停/恢复Percona 雷竞技下载官网XtraDB集群。
基于Pe雷竞技下载官网rcona XtraDB Cluster的MySQL Percona Operator提供了两种全集群崩溃后恢复的方法。
Operator从版本开始提供自动崩溃恢复(默认情况下)和半自动恢复1.7。对于以前的操作员版本,可以手动进行崩溃恢复。
美元为我在$ (seq0(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做回声"############### cluster1-pxc -我美元##############";kubectl日志cluster1-pxc -我美元- cpxc|grep”(seqno):“;完成
命令回显信息如下:
###############cluster1- pxcc -0##############是cluster1- pxcc -0.cluster1- pxcc .default.svc.cluster.local node with sequence number (seqno): 18 ###############cluster1- pxcc -1.cluster1- pxcc .default.svc.cluster.local node with sequence number (seqno): 18 ###############cluster1- pxcc -2.cluster1- pxcc .default.svc.cluster.local node with sequence number (seqno): 19
现在去找最大的花苞seqno(这是cluster1-pxc-2在上面的例子中)。
现在执行以下命令启动这个实例:
美元kubectl执行cluster1-pxc-2- cpxc--上海- c'kill -s USR1 1'
警告
此方法包含大量操作,因此仅针对高级用户!
该方法包括以下步骤:
交换原始的Percona XtraD雷竞技下载官网B群集映像调试图像,它在崩溃后不会重新启动,并强制所有pod运行它,
找到Pod与最新的Percona XtraDB集群数据,运行恢复,开雷竞技下载官网始mysqld,并允许集群重新启动,
恢复所有临时替换。
让我们假设命名的集群确实发生了完全崩溃cluster1,它基于三个Percona XtraDB集群Pods雷竞技下载官网。
请注意
下面的命令是为Percona XtraDB Cluster 8.0编写的。雷竞技下载官网同样的步骤也适用于Percona XtraDB Clus雷竞技下载官网ter 5.7,除非另有特别说明。
使用以下命令检查当前的更新策略以确保智能更新在恢复期间关闭:
美元kubectl得到pxccluster1- ojsonpath=“{.spec.updateStrategy}”
如果返回值为智能更新,请换成onDelete使用以下命令:
美元kubectl补丁pxccluster1——类型=合并——补丁“{"spec": {"updateStrategy": "OnDelete"}}”
将集群对象中的普通PXC映像更改为调试映像:
请注意
请确保调试映像的Percona XtraD雷竞技下载官网B集群版本与集群中当前使用的版本匹配。您可以运行以下命令来查找正在使用的Percona XtraDB群集映像:雷竞技下载官网
美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.image}”
美元kubectl补丁pxccluster1——类型=“合并”- p”{“规范”:{“pxc”:{“图像”:“perco雷竞技下载官网na / percona-xtradb-cluster: 8.0.29-21.1-debug“}}}”
请注意
对于Pe雷竞技下载官网rcona XtraDB Cluster 5.7,该命令应该如下所示:
美元kubectl补丁pxccluster1——类型=“合并”- p”{“规范”:{“pxc”:{“图像”:“perco雷竞技下载官网na / percona-xtradb-cluster: 5.7.39-31.61-debug“}}}”
重启所有pod:
美元为我在$ (seq0(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做kubectl删除圆荚体cluster1-pxc -我美元——力——宽限期=0;完成
等到豆荚0已经准备好,并执行以下代码(这是Pod活态检查所必需的):
美元为我在$ (seq0(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做直到[[$ (kubectl得到圆荚体cluster1-pxc -我美元- ojsonpath=“{.status.phase}”)==“奔跑”]];做睡眠10;完成;kubectl执行cluster1-pxc -我美元--触摸/var/lib/mysql/sst_in_progress;完成
等待所有Percona X雷竞技下载官网traDB Cluster Pods启动,并执行以下代码以确保没有mysqld进程正在运行:
美元为我在$ (seq(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做pid=$ (kubectl执行cluster1-pxc -我美元--ps- cmysqld-ps- opid=);如果[[- n"$ pid"]];然后kubectl执行cluster1-pxc -我美元--杀了9$ pid;fi;完成
等待所有Percona X雷竞技下载官网traDB Cluster Pods启动,然后找到具有最新数据的Percona XtraDB Cluster实例(即具有最高数据的实例)序列号(seqno):
美元为我在$ (seq0(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做回声"############### cluster1-pxc -我美元##############";kubectl执行cluster1-pxc -我美元--猫/var/lib/mysql/grastate.dat;完成
命令回显信息如下:
###############cluster1-pxc-0############## # GALERA saved state version: 2.1 uuid: 7e037079-6517-11ea-a558-8e77af893c93 seqno: 18 safe_to_bootstrap: 0 ###############cluster1-pxc-1############## # GALERA saved state version: 2.1 uuid: 7e037079-6517-11ea-a558-8e77af893c93 seqno: 18 safe_to_bootstrap: 0 ###############cluster1-pxc-2############## # GALERA saved state version: 2.1 uuid: 7e037079-6517-11ea-a558-8e77af893c93 seqno: 19 safe_to_bootstrap: 0
现在去找最大的花苞seqno(这是cluster1-pxc-2在上面的例子中)。
现在执行以下命令在一个单独的外壳中启动这个实例:
美元kubectl执行cluster1-pxc-2--mysqld——wsrep_recover美元kubectl执行cluster1-pxc-2--sed-我's/safe_to_bootstrap: 0/safe_to_bootstrap: 1/g'/var/lib/mysql/grastate.dat美元kubectl执行cluster1-pxc-2--sed-我' s / wsrep_cluster_address = * / wsrep_cluster_address = gcomm: \ / \ / / g’/etc/mysql/node.cnf美元kubectl执行cluster1-pxc-2--mysqld
的mysqld进程将再次初始化数据库,并且它将可用于传入连接。
回去到上一个shell并返回原来的Percona XtraDB集群镜像雷竞技下载官网,因为不再需要调试镜像:
请注意
请确保调试映像的Percona XtraD雷竞技下载官网B集群版本与集群中当前使用的版本匹配。
美元kubectl补丁pxccluster1——类型=“合并”- p”{“规范”:{“pxc”:{“图像”:“perco雷竞技下载官网na / percona-xtradb-cluster: 8.0.29-21.1“}}}”
请注意
对于Pe雷竞技下载官网rcona XtraDB Cluster 5.7,该命令应该如下所示:
美元kubectl补丁pxccluster1——类型=“合并”- p”{“规范”:{“pxc”:{“图像”:“perco雷竞技下载官网na / percona-xtradb-cluster: 5.7.39-31.61“}}}”
重启所有podcluster1-pxc-2Pod(恢复捐赠者)。
美元为我在$ (seq0(((美元kubectl得到pxccluster1- ojsonpath=“{.spec.pxc.size}”)-1)));做直到[[$ (kubectl得到圆荚体cluster1-pxc -我美元- ojsonpath=“{.status.phase}”)==“奔跑”]];做睡眠10;完成;kubectl执行cluster1-pxc -我美元--rm/var/lib/mysql/sst_in_progress;完成美元kubectl删除豆荚——力——宽限期=0cluster1-pxc-0cluster1-pxc-1
等待在上一步中删除的Pods成功启动,最后删除cluster1-pxc-2圆荚体:
美元kubectl删除豆荚——力——宽限期=0cluster1-pxc-2
Pod启动后,集群完全恢复。
请注意
如果您更改了1上的更新策略圣步骤,别忘了把它还原回来智能更新使用以下命令:
美元kubectl补丁pxccluster1——类型=合并——补丁“{"spec": {"updateStrategy": "SmartUpdate"}}”