容器化|在 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)

大家都在看

  • Nginx实现服务器端集群搭建

    Nginx实现服务器端集群搭建 Nginx与Tomcat部署 前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在…

    数据库 2023年6月6日
    089
  • Python语法糖,提升编程幸福感!!!

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/a52bc938.html 大家好,我是测试蔡坨坨。 今天,我们来盘点一下Python中的那些语法糖。 …

    数据库 2023年6月11日
    0120
  • Java开源博客系统AngelBlog发布

    一、Java开源博客系统(AngelBlog)系统简介 Angel工作室AngelBlog系统是基于Java Spring boot +前端bootstrap+jquery+lay…

    数据库 2023年6月14日
    088
  • JSP中的EL 表达式

    JSP中的EL 表达式 什么是 EL 表达式,EL 表达式的作用? EL 表达式搜索域数据的顺序 EL 表达式输出 Bean 的普通属性,数组属性,List 集合属性,map 集合…

    数据库 2023年6月11日
    085
  • [springmvc]mvc的多种方式实现请求转发与重定向

    3.restful风格 RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。 RESTFUL适用于移动互联网厂商作为业务接…

    数据库 2023年6月16日
    095
  • RadonDB MySQL Kubernetes 2.2.1 发布!

    RadonDB MySQL Kubernetes[1] 于近日正式发布新版本 2.2.1[2]。该版本主要在用户管理、高可用组件等进行了优化,并修复一些问题。 感谢 @runkec…

    数据库 2023年5月24日
    087
  • 基于mybatis的java代码生成存储过程

    1 — — powered by wanglifeng https://www.cnblogs.com/wanglifeng717 2 DROP PROCEDURE IF EX…

    数据库 2023年5月24日
    088
  • 2022-8-15 数据库 mysql 第一天

    Mysql数据库 数据库 数据库[根据数据结构组织、存储和管理数据的仓库]。它是有组织的、可共享的、统一管理的大量数据的集合,这些数据长期存储在计算机中。 [En] Databas…

    数据库 2023年5月24日
    074
  • mybatis 拦截器

    1.mybatis拦截器介绍 拦截器可在mybatis进行sql底层处理的时候执行额外的逻辑,最常见的就是分页逻辑、对结果集进行处理过滤敏感信息等。 public Paramete…

    数据库 2023年6月16日
    091
  • 第十六章:接口

    本篇翻译自《Practical Go Lessons》 Chapter 16: Interfaces 1 你将在本章学到什么? 什么是类型接口? 如何定义接口。 “实现…

    数据库 2023年6月6日
    0111
  • 界面酷炫,功能强大!这款 Linux 性能实时监控工具超好用!

    对于维护、管理Linux系统来说,它的性能监控非常重要,特别是实时监控数据,这个数据有利于我们判断服务器的负载压力,及时调整资源调配,也有助于更好的服务于业务。所以,今天民工哥给大…

    数据库 2023年6月9日
    091
  • 将侧边栏制成inclusion_tag

    在开发过程中,像侧边栏这种功能的版块,我们在很多页面都需要使用到的时候,我们则需要在视图函数中书写重复的代码,这样很繁琐,我们可以将侧边栏制成inclusion_tag,后面我们需…

    数据库 2023年6月14日
    090
  • 【黄啊码】小程序:九宫格抽奖如何实现?可控制抽奖率

    如果让你用微信小程序获取经纬度,然后在后台计算距离,返回数据 一般人的逻辑就是:getLocation之后直接request 然而,当你request后才发现,根本没有弹窗,wha…

    数据库 2023年6月16日
    0164
  • mysql的半同步复制

    binlog dump线程何时向从库发送binlog mysql在server层进行了组提交之后,为了提高并行度,将提交阶段分为了 flush sync commit三个阶段,根据…

    数据库 2023年6月9日
    0103
  • maven配置本地仓库

    https://www.cnblogs.com/javajetty/p/10051156.html maven配置本地仓库 Original: https://www.cnblog…

    数据库 2023年6月9日
    092
  • 从零开始搭建高可用的k8s集群

    一、环境准备 使用Hyper-V虚拟机功能搭建三台Centos虚拟机系统,配置好静态IP,分别为k8s-node1(192.168.0.8),k8s-node2(192.168.0…

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