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

作者:程润科、钱芬
视频:钱芬

上一篇文章我们演示了如何快速实现 MySQL 高可用集群部署,以及部署集群的校验和卸载方式。本文将演示如何对集群进行备份和恢复。

部署版本为 RadonDB MySQL Kubernetes 2.1.3。

首先准备一套 Kubernetes 集群,过程略。然后创建一套 RadonDB MySQL 集群。

步骤 1:下载源码

$ git clone https://github.com/radondb/radondb-mysql-kubernetes.git

步骤 2:安装 Operator

以下指定 release 名为 test , 创建一个名为 test-mysql-operator 的 Deployment。。

$ helm install test charts/mysql-operator

步骤 3:配置备份信息

Kubernetes Secret 资源信息需提前准备。文章及操作视频中的资源环境为青云云平台的 qingstor 对象存储。其他平台的密钥及 S3 存储服务创建过程类似,请另行参考。

登录青云云平台官网,点击 产品与服务 -> API 密钥;进入入 API 密钥页面,点击 创建 API 密钥,输入名称后下载 s3-access-keys3-secret-key 明文信息。

点击 产品与服务 -> 对象存储;进入对象存储页面,点击 创建 Bucket,输入 bucket 名称后即可获得 bucket 明文信息:

  • s3-endpoint:http://s3.sh1a.qingstor.com
  • s3-access-key:VNXYHYHQUXZKUVZFGFRY
  • s3-secret-key:0zw7JKkbAAdlQKHPjTHWtoFGGQRvnQ5SJRc5P69r
  • s3-bucket: radondb-mysql-bucket s3-xxxx 的值是使用 base64 算法加密的,你可以这样获得。(此处对s3-xxx信息进行脱敏处理)。
$ echo -n "http://s3.sh1a.qingstor.com"|base64

创建 backup_secret.yaml文件用来存放 S3 对象存储相关信息。(此处对s3-xxx信息进行脱敏处理)。

kind: Secret
apiVersion: v1
metadata:
name: sample-backup-secret
namespace: default
data:
s3-endpoint: aHR0cDovL3MzLnNoMWEucWluZ3N0b3IuY29t
s3-access-key: Vk5YWUhZSFFVWFpLVVZaRkdGUlk=
s3-secret-key: MHp3N0pLa2JBQWRsUUtIUGpUSFd0b0ZHR1FSdm5RNVNKUmM1UDY5cg==
s3-bucket: cmFkb25kYi1teXNxbC1idWNrZXQ=
type: Opaque

然后在 kubernetes 中执行创建加密配置。

$ kubectl create -f config/samples/backup_secret.yaml

步骤 4:创建及启动集群

请在 mysql_v1a1pha1_mysqlcluster.yaml 文件中添加 backupSecretName 属性。

spec:
replicas: 3
mysqlVersion: "5.7"
backupSecretName: sample-backup-secret
...

执行以下指令,即创建 RadonDB MySQL 集群。

$ kubectl apply -f config/samples/mysql_v1alpha1_mysqlcluster.yaml

将集群数据备份到 S3 存储

创建备份文件 mysql_v1a1pha1_backup.yaml 内容如下。

apiVersion: mysql.radondb.com/v1alpha1
kind: Backup
metadata:
name: backup-sample1
spec:
Add fields here
hostname: sample-mysql-0
clustname: sample

name function hostname pod name in cluser clustname cluster name

在集群成功运行后,执行以下指令开始备份。

[En]

After the cluster runs successfully, execute the following instructions to start the backup.

$ kubectl apply -f config/samples/mysql_v1alpha1_backup.yaml

备份完成后可在 S3 查看对应的备份文件。

从 S3 备份中恢复集群

检测你的 S3 bucket,获取你备份的目录,比如: backup_2021720827,并且将设置为 yaml 文件的 restoreFrom 属性中。

...

spec:
replicas: 3
mysqlVersion: "5.7"
backupSecretName: sample-backup-secret
restoreFrom: "backup_2021720827"
...

此时执行以下指令:

$ kubectl apply -f config/samples/mysql_v1alpha1_mysqlcluster.yaml

恢复完成,已经从名为 backup_2021720827 的 S3 备份中恢复一个集群。

部署文档的卸载部分详细介绍了卸载过程。

[En]

The uninstall process is detailed in the uninstall section of the deployment documentation.

Original: https://www.cnblogs.com/radondb/p/16189210.html
Author: RadonDB
Title: 容器化|在 S3 备份恢复 RadonDB MySQL 集群数据

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505450/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux 目录

    以下是对这些目录的解释: /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里存放的是启动 Linux 时使用的…

    数据库 2023年6月6日
    0117
  • 如何成为一名开发人员——第 1 部分:编码技巧

    1 学习一门语言 程序员编写计算机代码,所以你必须学会说这种语言。 但是, 你首先学习哪种编程语言并不重要!这完全取决于你对什么感兴趣。例如… 如果你想进入 Web 开…

    数据库 2023年6月14日
    0126
  • 数据库读写分离

    ———-数据库读写分离———- 环境准备:(两台虚拟机(centos7)可以连接外网 步骤1: 安装数据库,…

    数据库 2023年6月16日
    0147
  • 自定义表单 动态表单 表单设计器 流程引擎 设计方案

    作流模块——————————- 1.模型管理 :web在线流…

    数据库 2023年6月6日
    0101
  • Linux平台Redis安装总结

    本文测试验证的操作系统为CentOS Linux release 7.8.2003 (Core),Redis版本为redis-6.0.8。 敬请注意,如有不同,请以实际情况为准。 …

    数据库 2023年6月11日
    091
  • MySQL之自关联查询

    假设要设计两张表,一张省份表(provinces),一张城市表(citys) 省份表结构 id ptitle 城市表结构 id ctitle proid(表示城市所属的省,对应着省…

    数据库 2023年5月24日
    0166
  • Vim配置文件-详解(.vimrc)

    Vim配置文件的作用 Vim启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim 所有系统用户在启动Vim时,都会加载这个配置文件。…

    数据库 2023年6月14日
    0100
  • Centos安装mysql57

    1.1 MySQL安装 1.1.1 下载 wget 命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql…

    数据库 2023年5月24日
    0133
  • 达梦产品技术支持培训-day8-DM8数据库备份与还原-实操

    Disql 工具:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原; DMRMAN 工具:脱机数据库备份还原与恢复; 客户端工具 MANAGER和CONSOLE:对应…

    数据库 2023年6月11日
    0102
  • 正则表达式与SQL

    在我心中正则表达式和SQL就是一样的东西。 SQL是结构化查询语言,是根据某个查询、修改规则来查询修改数据,是描述一个规则给数据库,数据库来执行,数据库返回结果,过程不需要考虑,不…

    数据库 2023年6月9日
    092
  • JUC并发编程进阶!!

    1.知识点回顾及延伸 2.生产者消费者问题 3. 八锁问题 4.集合类线程不安全解决 5.Callable再理解 6.三大常用辅助类 6.1、 CountDownLatch 6.2…

    数据库 2023年6月16日
    0122
  • 【SQL实战】期末考试,如何统计学生成绩

    年关将至,这两天所有小学都进入了期末考试阶段。在考试结束时,有必要清点学生的分数。有趣的是,学校提供的成绩单现在并不直接标明分数,而是一个等级,如优秀、良好、合格、不及格。至少北京…

    数据库 2023年5月24日
    0182
  • 浅谈事务隔离级别、MVCC及相关特性

    文采不是太好,应该会有地方表达不清楚,烦请指正。 需要事先准备测试表: CREATE TABLE test ( id int(11) NOT NULL, name varchar(…

    数据库 2023年6月16日
    0113
  • 01-MySQL基础

    1、数据库的基本概念 1.1、文件操作数据的缺点 查找,增加,修改,删除数据等操作比较麻烦(特别是txt),效率低 1.2、数据库的介绍 存储和管理数据的仓库 英文单词为Dtaba…

    数据库 2023年5月24日
    093
  • 慢查询SQL排查

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/c56bd0c5.html 你好,我是测试蔡坨坨。 在往期文章中,我们聊过数据库基础知识,可参考「数据库…

    数据库 2023年5月24日
    0109
  • 每个开发人员都应该关注的7个优秀的GitHub仓库

    1. FreeCodeCamp 2. Developer Roadmap 3. Awesome 4. Build Your Own X 5. Git Ignore 6. Syste…

    数据库 2023年6月11日
    0122
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球