写点什么

容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据

作者:RadonDB
  • 2022 年 8 月 04 日
  • 本文字数:890 字

    阅读完需:约 3 分钟

容器化 | 在 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.yamlnfsServerAddress: "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 备份中恢复一个集群。

发布于: 刚刚阅读数: 2
用户头像

RadonDB

关注

https://radondb.com 2021.06.21 加入

RadonDB 开源社区,一个面向云原生、容器化的数据库开源社区!

评论

发布
暂无评论
容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据_MySQL_RadonDB_InfoQ写作社区