集群恢复
PolarDB-X Operator 从 1.3.0 版本开始支持全量备份恢复功能。本文介绍如何通过已有的备份集恢复出 PolarDB-X 集群。
恢复 企业版PolarDB-X 集群
PolarDB-X 备份集恢复支持两种方式:
- 指定备份集对象进行恢复
- 指定备份集文件进行恢复
指定备份集对象进行恢复
这一种方式必须确保备份集对应的PolarDBXBackup
对象仍然留存在K8S集群中,并且保证远程存储中仍然保存着备份文件。
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: pxc-restore
spec:
topology:
nodes:
cn:
template:
image: polardbx/polardbx-sql:v2.4.0_5.4.19
dn:
template:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
restore:
backupset: pxcbackup-test
syncSpecWithOriginalCluster: false
参数说明
- topology: 实例规格,可参照实例创建
- restore.backupset: 备份集(备份对象)名称
- restore.syncSpecWithOriginalCluster( 该参数仅适用于 1.4.0 及后续版本 ): 是否保持实例规格和原实例一致,默认取值为
false
,不保持一致;目前不支持集群异构恢复,这意味着数据节点数会强制与原实例保持一致
指定备份集文件进行恢复
这一种恢复方式仅支持 1.4.0 版本以后产出的备份集,只须保证远程存储中仍然保存着备份文件即可。
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: pxc-restore
spec:
topology:
nodes:
cn:
template:
image: polardbx/polardbx-sql:v2.4.0_5.4.19
dn:
template:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
restore:
from:
backupSetPath: /polardbx/backup/pxcbackup-test
storageProvider:
storageName: sftp
sink: default
syncSpecWithOriginalCluster: false
参数说明
- topology: 实例规格,可参照实例创建
- restore.from.backupSetPath: 备份集的远程存储路径
- restore.storageProvider: 备份使用的存储配置,可参照集群备份
- restore.syncSpecWithOriginalCluster( 该参数仅适用于 1.4.0 及后续版本 ): 是否保持实例规格和原实例一致,默认取值为
false
,不保持一致;目前不支持集群异构恢复,这意味着数据节点数会强制与原实例保持一致
参照上述示例编写恢复用的yaml文件,这里需要注意指定创建方式是restore
,通过以下命令进行恢复:
kubectl apply -f pxc-restore.yaml
可通过以下命令观察恢复进度:
kubectl get pxc
当状态中的PHASE
变为RUNNING
后整个恢复流程就完成了
NAME GMS CN DN CDC PHASE DISK AGE
pxc-restore 1/1 1/1 2/2 1/1 Running 20.3 GiB 22m
恢复 标准版PolarDB-X 集群
指定备份集对象进行恢复
这一种方式必须确保备份集对应的XStoreBackup
对象仍然留存在K8S集群中,并且保证远程存储中仍然保存着备份文件。
apiVersion: polardbx.aliyun.com/v1
kind: XStore
metadata:
name: pxc-standard-restore
spec:
topology:
nodeSets:
- name: cands
replicas: 2
role: Candidate
template:
spec:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
- name: log
replicas: 1
role: Voter
template:
spec:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
restore:
backupset: pxcstandard-backup-test
from:
clusterName: pxc-standard
参数说明
- topology: 实例规格,可参照标准版集群实例创建
- restore.backupset: 备份集(备份对象)名称
- restore.from.clusterName: 恢复的源集群名称
指定备份集文件进行恢复
这一种恢复方式仅支持 1.4.0 版本以后产出的备份集,只须保证远程存储中仍然保存着备份文件即可。
apiVersion: polardbx.aliyun.com/v1
kind: XStore
metadata:
name: pxc-standard-restore
spec:
topology:
nodeSets:
- name: cands
replicas: 2
role: Candidate
template:
spec:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
- name: log
replicas: 1
role: Voter
template:
spec:
image: polardbx/polardbx-engine:v2.4.0_8.4.19
restore:
from:
backupSetPath: /polardbx/backup/pxcstandard-backup
storageProvider:
storageName: sftp
sink: default
参数说明
- 字段和 PolarDB-X企业版恢复 一致
参照上述示例编写恢复用的yaml文件,这里需要注意指定创建方式是restore
,通过以下命令进行恢复:
kubectl apply -f pxc-standard-restore.yaml
可通过以下命令观察恢复进度:
kubectl get xs
当状态中的PHASE
变为RUNNING
后整个恢复流程就完成了
NAME LEADER READY PHASE DISK VERSION AGE
pxc-standard-restore pxc-standard-restore-tpdj-cand-1 3/3 Running 3.6 GiB 8.0.18 85s
注意事项
- 快速的恢复操作只需在yaml文件中指定希望使用的镜像即可,否则将会使用默认的镜像,更多的规格配置可以参考集群创建
- 目前的恢复功能只支持同构恢复,暂不支持节点数量的变更