polardbxoperatordocs/ops/rebuild/rebuild.md

50 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

备库重搭
===========================
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创建出一个跨机备库重搭任务并等待重搭任务执行成功。
```yaml
apiVersion: polardbx.aliyun.com/v1
kind: XStoreFollower
metadata:
name: rebuildjob
spec:
local: false
targetPodName: xstore-xxx-pod-1
xStoreName: xstore-xxx
```