集群恢复
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文件中指定希望使用的镜像即可,否则将会使用默认的镜像,更多的规格配置可以参考集群创建
 - 目前的恢复功能只支持同构恢复,暂不支持节点数量的变更