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

大家都在看

  • MySQL 8 新特性之Clone Plugin

    Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replic…

    数据库 2023年6月11日
    0176
  • IDEA插件和个性化配置推荐

    插件推荐 我自己现在使用的一些插件和一些自己感觉比较舒服配置分析给大家 idea如何安装插件: 如果打开设置没有看到,直接搜索plugins 然后在这里搜索即可 CodeGlanc…

    数据库 2023年6月16日
    0145
  • Vue(十一)—key特殊attribute

    预期: number | string | boolean (2.4.2 新增) | symbol (2.5.12 &#x65B…

    数据库 2023年6月16日
    0143
  • MySQL 期末试题

    当时我们期末的其中一套卷子, 好像有两套但是我当时懒得弄第二套. 就认真把第一套整了XD 一 单项选择题1.当隔离级别设置为read committed时,可以避免 。(2分)丢失…

    数据库 2023年6月11日
    0112
  • Linux 下安装 node.js

    这里介绍两种安装方式: 编译安装和使用编译后的安装包安装。 安装目录: /usr/local 一、使用编译安装包安装 1、进入安装目录: 2、下载安装包: 3、解压: 4、进入解压…

    数据库 2023年6月14日
    0140
  • 博客怎么写才能更安全和简洁

    前言 博客实现本地存储 Markdown语法的介绍 博客对于我们普通人来说就是为了更好的去实现个人知识的一个整理融合然后把知识共享可以帮助其他去实现自己的一些工作或者学习中的一些疑…

    数据库 2023年6月6日
    0137
  • Cookie & Session

    posted @2020-12-02 23:48 一方玩 阅读(31 ) 评论() 编辑 Original: https://www.cnblogs.com/tianyuwohu/…

    数据库 2023年6月6日
    0122
  • SQL 版本号排序

    SQL 语句直接对内容为版本号格式的字段进行排序时,排序效果通常不是最终想要的效果,因为最终需要的效果,是需对版本号里的每一段(通常以小数点分隔)按数值进行排序。 解决这个问题,主…

    数据库 2023年5月24日
    0139
  • 【已解决】关于echarts的splitArea分割区域背景闪烁问题

    (x轴)使用时间类型(type: “time”),并且x轴使用splitArea划分后使用color属性设定分割区域颜色。同时使用dataZoom设置区域缩…

    数据库 2023年6月6日
    0147
  • 多商户商城系统功能拆解26讲-平台端分销设置

    多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。 多商户商城系统支持商家入驻加盟,同时满足平台自营…

    数据库 2023年6月14日
    0158
  • 用户管理

    介绍Linux用户组的概念和对用户添加,删除和指定密码的基本操作 用户管理 Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一…

    数据库 2023年6月16日
    0165
  • 3. 视图-触发器-存储过程-索引

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    0108
  • ASP.NET MVC通用权限管理系统源代码开源发布(AngelRM_MVC)v2.1

    一、Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC)是基于asp.net(C#)MVC打造后端原生态代码+前端bootstrap+ztree+loda…

    数据库 2023年6月14日
    0127
  • 代码优化记录

    代码优化记录 神龟虽寿,犹有竟时。 神龟虽寿 犹有竟时 Original: https://www.cnblogs.com/taojietaoge/p/15853508.htmlA…

    数据库 2023年6月14日
    0138
  • Java项目服务器跨域设置

    引入jar包 cors-filter-2.6 :http://central.maven.org/maven2/com/thetransactioncompany/cors-fil…

    数据库 2023年6月16日
    0128
  • MySQL的本地事务、全局事务、分布式事务

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

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