Tidb 使用minio 进行br备份数据库的过程


背景

br 备份恢复时一般需要共享存储.
前段时间一直使用的是nfs 进行共享文件备份.
这样需要所有的机器在 相同的目录下面挂载相同的nfs.
并且是需要有读写权限. 所以nfs 就比较复杂了. 而且需要有宿主机的权限比较难以实现.
使用s3协议. 或者是minio的话 应该会简单很多.
直接可以使用http的协议进行文件的备份与恢复.

minio的搭建

这一块比较简单, 不需要多次说明了.
唯一需要说明的是 minio 必须有一个bucket 才可以执行备份与恢复. 可以使用命令方式进行创建.
下载一个 mc 的工具 然后进行如下处理:
mc config host add minio http://192.168.255.65:9000 miniouser miniopassword
创建一个 bucket
mc mb minio/tidb20230810

使用s3协议进行备份

# 安装
tiup install br:v6.5.3
# 一般情况下的目录
cd /root/.tiup/components/br/v6.5.3/
# 执行命令一般为:
export AWS_ACCESS_KEY_ID=miniouser
export AWS_SECRET_ACCESS_KEY=miniopasswd
# 需要注意 这个不是 minio的 是AWS 开头的. 与minio的环境变量不一致.
# 备份
time br backup full --pd "192.168.255.xx:2379" --storage "s3://tidb20230810" --s3.endpoint "http://192.168.255.xx:9000" --send-credentials-to-tikv=true --log-file backupfull.log
# 恢复
time br restore full --pd "192.168.255.xx:2379" --storage "s3://tidb20230810" --s3.endpoint "http://192.168.255.xx:9000" --send-credentials-to-tikv=true --log-file restorefull.log # 需要注意 s3 后面的 bucket 必须优先创建,不然那会报错.
Error: failed to get region of bucket tidb20230810: NotFound: Not Found
status code: 404, request id: 177A0092AAB86045, # 注意一个bucket 仅可以备份一次, 多次备份会报错:
Error: backup meta file exists in s3://tidb20230810//backupmeta, there may be some backup files in the path already, please specify a correct backup directory!: [BR:Common:ErrInvalidArgument]invalid argument

备份的效果

Full Backup <------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
Checksum <---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
[2023/08/10 19:15:44.641 +08:00] [INFO] [collector.go:73] ["Full Backup success summary"] [total-ranges=5781] [ranges-succeed=5781] [ranges-failed=0] [backup-checksum=23.204545089s] [backup-fast-checksum=1.587649818s] [backup-total-ranges=7170] [total-take=2m2.571503392s] [total-kv=146164259] [total-kv-size=135.8GB] [average-speed=1.108GB/s] [backup-data-size(after-compressed)=7.876GB] [Size=7875854527] [BackupTS=443460098398617601] real 2m2.628s
user 0m26.261s
sys 0m4.925s

Tidb 使用minio 进行br备份数据库的过程的更多相关文章

  1. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  2. PHP备份数据库的原理和方法 57

    1.PHP备份数据库的原理查找所有表--查找所有字段(需要列出所有字段名, 字段类型等相关信 息)---查找所有数据(读取数据出来注意 特殊符号的转换 addslashes ())--生成SQL(把数 ...

  3. php备份数据库类分享

    本文实例讲述了php实现MySQL数据库备份类.分享给大家供大家参考.具体分析如下:这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的配置好连接地址用户名与数据库即可   ph ...

  4. php备份数据库

    php备份数据库原理和方法 原理 查找所有表 查找所有字段,列出所有字段名 字段类型等信息 查找所有数据 读取后注意特殊符号转换addslashes() 生成sql 把数据库格式化生成对应sql 相关 ...

  5. oracle 备份数据库对象(存储过程PROCEDURE,FUNCTION,VIEW,TRIGGER...)

    开发过程中,需要不停的备份数据库对象, 特别是存储过程, 每次手动备份不免很低能啊 历经几次修改终于, 完美了,O(∩_∩)O哈哈~      (当然,你也可以再改简便一点~~~) select db ...

  6. Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作

    Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...

  7. Sql Server自动备份数据库,定期删除备份

    //实现:每天自动备份数据库,定期删除备份 //步骤:[开始]--[所有程序]--[Microsoft SQL Server 2005]--[SQL Server Management Studio] ...

  8. 知方可补不足~SqlServer自动备份数据库及清理备份文件

    回到目录 对于SQLSERVER这个关系型数据库来说,为了保持数据的安全,备份是必须的,当你的一个误操作导致数据丢失,这可能是灾难性的,是不被允许发生的,这时,我们必须要做好定期的备份工作,如我们可以 ...

  9. mysql load data infile的使用 和 SELECT into outfile备份数据库数据

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE t ...

  10. 出现“System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部”错误的解决方案

    Sql Server2008数据库在还原时出现如下错误信息:System.Data.SqlClient.SqlError: 尚未备份数据库<数据库名称>的日志尾部.如果该日志包含您不希望丢 ...

随机推荐

  1. zabbix常用监控项

    https://blog.csdn.net/xkjcf/article/details/78559273?locationNum=10&fps=1 agent.ping  #agent是否在线 ...

  2. ubuntu 之 安装mysql8

    安装 1 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb 2 sudo apt-get update sudo apt ...

  3. Deployment控制器

    目录 Deployment控制器 1.deployment及副本数 使用命令生产yaml文件模板 控制器通过什么管理pod? 2.副本数修改方法 3.动态扩展HPA 4.镜像滚动升级及回滚 升级 回退 ...

  4. Picker 选择器

    WXML 文件中 <view class="container"> <view> <text>选择器的值: {{pickerValue}}< ...

  5. maven 实现pb的实时编译

    <properties> <protobuf.version>3.15.7</protobuf.version></properties> <ex ...

  6. Kubernetes(K8S) 配置管理 Secret 介绍

    Secret 作用:加密数据(base64)存在 etcd 里面,让 Pod 容器以挂载 Volume 方式进行访问 场景:凭证 [root@k8smaster ~]# echo -n 'admin' ...

  7. ECS 挂载 OSS 多Bucket

    ECS 挂载 OSS,等同于在ECS 上使用内网的 Bucket 域名,不需要收取流量费用,减少接口代码的编写. CentOS系统 安装 wget http://gosspublic.alicdn.c ...

  8. SELinux 入门 pt.2

    哈喽大家好,我是咸鱼 在<SELinux 入门 pt.1>中,咸鱼向各位小伙伴介绍了 SELinux 所使用的 MAC 模型.以及几个重要的概念(主体.目标.策略.安全上下文) 我们还讲到 ...

  9. vi / vim 键盘图(清晰打印版,桌面背景好图)

    PDF File https://files.cnblogs.com/files/RioTian/vivim-graphical.zip?t=1704439837&download=true ...

  10. 【3rd Party】Cpp 中使用 Protobuf

    前置条件: [Protoc]VS2019 (VS平台) 使用 CMake 编译安装.使用 Protobuf 库 [ToolChains]CLion(VS2019) + CMake + Vcpkg 的使 ...