乐趣区

关于数据库:容器化-在-NFS-备份恢复-RadonDB-MySQL-集群数据

社区于上个月公布了 RadonDB MySQL Kubernetes v2.2.0,集群数据备份复原的存储类型除了 S3,新增 NFS 存储。本文将为您演示如何进行 NFS 备份及复原操作。

环境筹备

  • Kubernetes 集群
  • RadonDB MySQL 集群

过程略,具体请回顾《疾速实现 MySQL 高可用集群部署》。

装置 NFS 服务与资源

办法一:应用 Helm 装置

helm install demo charts/mysql-operator  --set nfsBackup.installServer=true  --set nfsBackup.volume.createLocalPV=true

或者手动创立 PVC,再执行

helm install demo charts/mysql-operator  --set nfsBackup.installServer=true  --set nfsBackup.volume.specifiedPVC=XXXX

用该办法,能够在装置 Operator 时,也将 NFS 服务的 Pod 和 Service 装置到集群中。

办法二:应用 kubectl 装置

kubectl apply -f config/samples/nfs_pv.yaml 
kubectl apply -f config/samples/nfs_server.yaml

获取 nfsServerAddress

例如:

kubectl get svc nfs-server --template={{.spec.clusterIP}}
10.98.253.82

获取到 ClusterIP,即能够应用该地址进行 NFS 备份。这里 IP 地址为 10.96.253.82

创立 NFS 备份

配置 NFS 服务的地址

# 文件 config/samples/mysql_v1alpha1_backup.yaml
nfsServerAddress: "10.96.253.82"

创立备份

kubectl apply -f config/samples/mysql_v1alpha1_backup.yaml

留神:备份自定义资源与 MySQL 集群自定义资源必须在同一个命名空间中。

验证备份

应用如下命令,能够发现名称格局为 <cluster name>_<timestamp> 的备份文件夹。

kubectl exec -it <pod name of nfs server> -- ls /exports
# 显示后果
index.html  initbackup  sample_2022419101946

备份复原

从已有的 NFS 备份文件中复原集群。配置 mysql_v1alpha1_cluster.yaml,将 nfsServerAddress 设置为 NFS 服务的地址。

...
restoreFrom: "sample_2022419101946"
nfsServerAddress: 10.96.253.82

留神:restoreFrom 是备份门路的名称,能够从 NFS 服务加载的门路中看到。而后从 NFS 备份正本复原集群,如下:

kubectl apply -f config/samples/mysql_v1alpha1_cluster.yaml

复原实现,曾经从名为 sample_2022419101946 的 NFS 备份中复原一个集群。

退出移动版