集群恢复

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

results matching ""

    No results matching ""