首页 > 其他分享 >TiDB Operator恢复持久卷上的备份文件

TiDB Operator恢复持久卷上的备份文件

时间:2023-03-01 15:36:48浏览次数:41  
标签:restore tidb 备份文件 nfs TiDB Operator k8s backup

上篇文章介绍了通过BR对tidb数据库备份到NFS共享存储上,本文将结束将NFS共享存储上的备份数据恢复到K8S集群环境上。本文介绍的恢复方法基于 TiDB Operator 的 CustomResourceDefinition (CRD) 实现,底层使用 ​​BR​​ 工具来恢复数据。BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复。

常用场景

当使用 BR 将 TiDB 集群数据备份到持久卷后,如果需要从持久卷将备份的 SST (键值对) 文件恢复到 TiDB 集群,请参考本文使用 BR 进行恢复。

注意

  • BR 只支持 TiDB v3.1 及以上版本。
  • BR 恢复的数据无法被同步到下游,因为 BR 直接导入 SST 文件,而下游集群目前没有办法获得上游的 SST 文件。

一、环境准备

下载 ​​backup-rbac.yaml​​ 文件到恢复的服务器上

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tidb-backup-manager
labels:
app.kubernetes.io/component: tidb-backup-manager
rules:
- apiGroups: [""]
resources: ["events"]
verbs: ["*"]
- apiGroups: ["pingcap.com"]
resources: ["backups", "restores"]
verbs: ["get", "watch", "list", "update"]

---
kind: ServiceAccount
apiVersion: v1
metadata:
name: tidb-backup-manager

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tidb-backup-manager
labels:
app.kubernetes.io/component: tidb-backup-manager
subjects:
- kind: ServiceAccount
name: tidb-backup-manager
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: tidb-backup-manager

执行命令创建恢复所需的RBAC相关资源

[root@k8s-master backup]# kubectl apply -f backup-rbac.yaml -ntidb
role.rbac.authorization.k8s.io/tidb-backup-manager created
serviceaccount/tidb-backup-manager created
rolebinding.rbac.authorization.k8s.io/tidb-backup-manager created

备注:如果备份的时候创建了此步骤可以省略

再次确认是否从K8S集群中可以访问备份数据的NFS服务器

如果TiDB版本高于v4.0.8可以忽略此步骤,如果低于需要执行如下操作

确保你拥有恢复数据库 ​​mysql.tidb​​ 表的 ​​SELECT​​ 和 ​​UPDATE​​ 权限,用于恢复前后调整 GC 时间。
创建 ​​restore-demo2-tidb-secret​​ secret:
kubectl create secret generic restore-demo2-tidb-secret --from-literal=user=root --from-literal=password=<password> --namespace=tidb

二、从持久卷NFS恢复数据

创建恢复的配置文件,将指定的备份数据恢复到TiDB集群

[root@k8s-master restore]# cat restore.yaml
---
apiVersion: pingcap.com/v1alpha1
kind: Restore
metadata:
name: demo2-restore-nfs
namespace: tidb
spec:

br:
cluster: yz
clusterNamespace: tidb

local:
prefix: backup-nfs
volume:
name: nfs
nfs:
server: 172.16.5.194
path: /home/k8s-nfs
volumeMount:
name: nfs
mountPath: /nfs

应该该配置文件,并验证恢复数据

[root@k8s-master restore]# kubectl apply -f restore.yaml
restore.pingcap.com/demo2-restore-nfs created
[root@k8s-master restore]# kubectl get restore -ntidb
NAME STATUS COMMITTS AGE
demo2-restore-nfs Running 49s

TiDB Operator恢复持久卷上的备份文件_tidb-operator

查看恢复的数据库和表

TiDB Operator恢复持久卷上的备份文件_Group_02

标签:restore,tidb,备份文件,nfs,TiDB,Operator,k8s,backup
From: https://blog.51cto.com/liqingbiao/6091557

相关文章

  • Strimzi-Kafka-Operator小记~1
    Strimzi-Kafka-Operator Kafka管理Operator-https://github.com/strimzi/strimzi-kafka-operator部署安装Operator https://strimzi.io/downloads/ 部署完成后生成......
  • navicat从备份文件导入sql
    场景接别人的一个项目bilibili,只有​​.psc​​文件(navicat备份文件)。该如何导入呢?解决方案新建数据库bilibili,双击打开数据库。还原备份从这种直接把数据导入到库里。......
  • Operator
    Kubernetes的Controller-manager集成了Kubernetes内置所有资源对象的控制器,而创建的CRD编写一个控制器的过程就是实现一个Operator。Operator是CoreOS开发的、特定的应用......
  • error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already def
    环境WIN10+VS2010。之前写代码时,需要调用windowsAPI,引用了#include<windows.h>。接下来为了返回CString,引用了#include<afxwin.h>。第一次报错:error :  Building ......
  • k8s operator添加webhook
    k8soperator添加webhookOperator中的webhook,其作用与过滤器类似,外部对CRD资源的变更,在Controller处理之前都会交给webhook提前处理,kubernetes官方博客明确指出webhoo......
  • k8s operator开发与使用
    k8soperator开发与使用本篇文章用于记录k8soperator的开发,此处以一个简单的demo来记录operator的开发过程及相关要点;本文中使用kubebuilder工具来生成相关代码一、......
  • missing name after . operator各种报错一大堆(填坑篇)
    问题描述:代码自测没问题了,打包时发现有49个报错:missingnameafter.operatormissing;missing}missing)syntaxerrorinvalidreturn总之......
  • 带您了解TiDB & MySQL数据库中关于日期、时间的坑
    (带您了解TiDB&MySQL数据库中关于日期、时间的坑)时间的基础知识什么是时间时间是人们根据自然现象而进行的一种抽象概念。人类通过观察日月星辰、季节交替、动植物生......
  • 使用Python对数据备份文件进行整理
    最近公司上了一个转储服务器,用于存储所有应用系统的数据文件备份,由于每天的备份文件都放在一个固定的文件夹,不需要的文件也会传过来,日后不方便整理,于是便使用Python脚本,将......
  • k8s中使用prometheus operator监控外部服务器部署的windows exporter
    k8s中使用prometheusoperator监控外部服务器部署的windowsexporter0、文档说明(1)PrometheusOperator是一个流行的k8s集群监控套件,项目地址:https://github.com/prom......