polardbxoperatordocs/ops/rebuild/rebuild.md

3.3 KiB
Raw Permalink Blame History

备库重搭

PolarDB-X的DN由三个节点组成角色为leader、follower、logger。当三个节点的其中一个由于软件或者硬件原因而无法继续提供服务的时候我们需要对问题节点进行重建即备库重搭。 本文主要介绍,针对存储节点的备库重搭功能。

备库重搭任务

备库重搭任务被定义为类型名为XStoreFollower一个Custom Resource Definition对象用户可通过书写CRD yaml文件发起一个备库重搭任务等任务成功后再删除备库重搭任务。

重搭流程

一般的备库重搭流程为:从主节点上发起一次流式备份,将备份集直接发送到目标机器上,然后在目标机器上进行恢复流程,最后进行必要的参数配置,恢复出一个备节点来。 具体流程如下表所示:

步骤 learner/follower是否需要 logger是否需要
校验参数
确定源节点
创建一个临时POD目标节点 跨机重搭时需要 跨机重搭时需要
从源头节点上流式备份到目标节点上
在目标节点上做备份恢复
刷三节点元数据包括三节点ip和binlog启始位点
删除临时pod将正式的pod创建到临时pod所在的节点
清理数据包括原pod的数据和备份集数据

参数介绍

参数 描述 是否必填 字段类型 默认值
.metadata.name 备库重搭任务名称 字符串
.spec.fromPodName 源POD名称即对这个POD发起流式备份 字符串 从xstore实例上选择一个健康的节点
.spec.targetPodName 被重搭的POD名称 字符串
.spec.local 是否本机重搭 布尔值 默认为跨机重搭
.spec.XStoreName 源POD的XStore实例名称 字符串
.spec.NodeName 可指定重搭到某个NODE上 字符串 本机重搭为目标POD的NODE名称跨机重搭则依据调度策略

例子

名称xstore-xxx的xstore实例下的一个POD名称为xstore-xxx-pod-1的节点数据损坏服务继续提供服务我们使用以下的yaml创建出一个跨机备库重搭任务并等待重搭任务执行成功。

apiVersion: polardbx.aliyun.com/v1
kind: XStoreFollower
metadata:
  name: rebuildjob
spec:
  local: false
  targetPodName: xstore-xxx-pod-1
  xStoreName: xstore-xxx