美文网首页
TiDB~br备份工具

TiDB~br备份工具

作者: 开心的蛋黄派 | 来源:发表于2024-07-06 11:03 被阅读0次

1、原理

  • 热备:采用物理备份方式,类似于xtrabackup。

2、适用场景和限制

  • 适用场景:

    • 大数据量环境。
    • 需要较快的备份速度。
    • 属于一致性备份
  • 限制:

    • 只能恢复到TIDB数据库。
    • 备份过程会消耗额外的服务器资源

3、过程

  • 每个TIKV节点都有一个对应的备份路径,用于执行本地备份和恢复操作。

4、使用限制

  • BR恢复时,下游TICDC无法捕捉到消息。
  • 备份集群和恢复集群必须采用相同的排序规则。
  • 版本兼容性:可通过-check-requirements=false参数强制跳过版本检查。
  • 某些功能的开启或关闭状态可能会导致KV发生变化。
  • 需要测试BR备份所消耗的资源并进行评估。

5、查看命令

  • show backups|restores:用于查看备份或恢复的状态。

6、具体命令

  • 全量备份:

    br backup full --pd <PD地址> --storage <每个TIKV节点的外部存储路径> --ratelimit 120 --log-file backupfull.log
    
  • 全量选择性恢复:

    br restore full --filter 'db*.tbl*' --pd <PD地址> --storage <备份存储路径> --log-file restorefull.log
    
  • 增量备份:

    br backup full --lastbackupts ${ts} --pd <PD地址> --storage <每个TIKV节点的外部存储路径> --log-file incremental_backup.log
    

    (其中${ts}是上次备份的时间戳,可通过br validate decode --field="end version" -s <上次备份的元数据文件> | tail -n1获取)

  • 单库备份/恢复:

    br backup db --db <dbname> --pd <PD地址> --storage <备份存储路径> --log-file <dbname>_backup.log
    br restore db --db <dbname> --pd <PD地址> --storage <备份存储路径> --log-file <dbname>_restore.log
    
  • 单表备份/恢复:

    br backup table --db <dbname> --table <tablename> --pd <PD地址> --storage <备份存储路径> --log-file <tablename>_backup.log
    br restore table --db <dbname> --table <tablename> --pd <PD地址> --storage <备份存储路径> --log-file <tablename>_restore.log
    

影响备份效率的参数

  • 介质存储:NAS 或 S3
  • concurrency:根据不同集群规模调整并发数
  • compression:"zstd" 或 "lz4"
  • backup.num-threads:4(固定值,限制备份使用的线程数)

建议

  1. 如果追求更小的online business影响,建议合理控制backup.num-threads参数与concurrency参数。
  2. 如果追求更小的online business影响,建议BR备份期间关闭checksum动作,通过--checksum=false配置进行关闭。

BR备份脚本示例

#!/bin/bash

# 设置备份相关变量
backup_storage="xxx" # 备份存储路径
pd_addr="http://127.0.0.1:2379" # PD地址
log_file="xxx.log" # 日志文件,以时间命名

# 执行全量备份命令
br backup full \
  --pd="${pd_addr}" \
  --storage="${backup_storage}" \
  --ratelimit=120 \
  --concurrency 16 \
  --compression "zstd" \
  --check-sum=false \
  --log-file="${log_file}"

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "Backup succeeded. Log file: ${log_file}"
else
  echo "Backup failed. Please check the log file: ${log_file}"
fi

这个脚本设置了备份存储路径、PD地址和日志文件路径(以当前时间命名),并执行了全量备份命令。备份完成后,它会检查命令的退出状态来确定备份是否成功,并输出相应的消息。

相关文章

  • TiDB Ecosystem Tools 原理解读(一):TiD

    作者:王相 简介 TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组...

  • TiDB 开启 binlog

    TiDB 中如何开启增量备份模式,答案就是通过 binlog 组件,关于 tidb-binlog 的架构可以参考官...

  • TiDB Operator,让 TiDB 成为真正的 Cloud

    TiDB Operator 是 TiDB 在 Kubernetes 平台上的自动化部署运维工具。目前,TiDB O...

  • OpenTracing 语义说明

    最近在为 TiDB 加一个 tracing 的工具。 虽然 TiDB 已经开始使用 OpenTracing 工具了...

  • 11.MySQL备份详解

    0.备份介绍1.备份类型2.冷、温、热备份3.备份工具介绍4.备份工具详解一:mysqldump5.备份工具详解二...

  • MySQL实时同步数据到TiDB指引

    案例:实时同步MySQL中的notify库到TiDB 一、下载工具包 #su -tidb$cd /home/tid...

  • mongodb备份

    1. 备份恢复 1.1 备份恢复工具介绍: 1.2 备份工具区别在哪里? 1.3 导出工具mongoexport ...

  • MongoDB 备份与恢复

    mongodb 备份与恢复 一.工具介绍 二.备份工具区别 三.mongoexport/mongoimport工具...

  • TiDB 相关工具

    有时候遇到一个 region 卡在 wait index,而 tikv、 tiflash proxy 都没有更多关...

  • PostgreSQL备份还原专题

    需要备份数据、归档日志。 备份方式 逻辑备份工具一般用于迁移pg_dumppg_dumpall物理备份工具pg_b...

网友评论

      本文标题:TiDB~br备份工具

      本文链接:https://www.haomeiwen.com/subject/rkqecjtx.html