关于tikv的备份和恢复

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

【概述】 测试环境中只使用了Tidb中的tikv和pd服务,其他服务均没有使用,部署是通过tikv的rpm包进行部署

【备份和数据迁移策略逻辑】

【背景】 使用br命令对tikv进行备份和恢复,按照官方文档,使用br backup full全量进行备份。再使用br restore full进行数据恢复

【现象】 备份可以正常运行完毕,再数据恢复时,报错"Error: [schema:1146]Table ‘mysql.global_variables’ doesn’t exist"

【问题】 数据还原的时候报错mysql表不存在,目前环境中只使用了tikv和pd,没有mysql.不知道下面如何继续操作来恢复数据

【业务影响】 无,测试集群

【TiDB 版本】 4.0.11

【附件】 无

1 个赞

请描述一下集群的状态以及操作步骤…

抱歉,我没明白您说的集群状态都包括哪个方面,测试环境没有使用整个的tidb集群,只是使用了tikv和pd.其他组件都没有。

操作步骤如下:

  1. 备份:
    备份可以正常运行, 并且没有报错,在/tmp/backup目录下有backup.lock和backupmeta.备份的具体明林如下:
    ./br backup full
    –pd “10.0.42.13:2379”
    –storage “local:///tmp/backup”
    –log-file restorefull.log
  2. 备份之后,在没有清理tikv集群的情况下进行数据恢复的操作,返回报错"Error: [schema:1146]Table ‘mysql.global_variables’ doesn’t exist", 备份命令如下:
    ./br restore full
    –pd “10.0.42.13:2379”
    –storage “local:///tmp/backup”
    –log-file restorefull.log

应该是你使用方式有问题导致的。

1.BR 备份裸 kv 集群属于实验特性,和 备份 TiDB 集群使用上是有差异的,建议看下官网
https://docs.pingcap.com/zh/tidb/stable/use-br-command-line-tool#raw-kv-备份实验性功能

2.在 v5.1.0 之前,BR 备份时会过滤掉系统库 mysql.* 的表数据。你这个版本不备份系统库是正常的。
https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-tool#备份和恢复-mysql-系统库下的表数据实验特性

以上信息官网都有描述哈,建议参考官网操作

2 个赞

谢谢您,我光看全量备份了。我再试试

在 v5.1.0 之前,BR 备份时会过滤掉系统库 mysql.* 的表数据。你这个版本不备份系统库是正常的。
把缺少的表加上呢?

目前的测试环境中只有tikv和pd,没有mysql.我先按照版主提供的官方文档试试看,谢谢您

请问,我参考了 https://docs.pingcap.com/zh/tidb/stable/use-br-command-line-tool#raw-kv-备份实验性功能 这个功能,在使用的时候需要输入startkey和endkey,我翻了下文档,2个值是从mysql系统库里面查出来的。目前的测试系统是没有mysql的,请问有再不使用mysql的情况下获取2个值的方法么

谢谢您,startkey和endkey的问题解决了,目前卡在写本地磁盘上了,报错是Error: msg:“Io(Os { code: 2, kind: NotFound, message: “No such file or directory” })” : [BR:KV:ErrKVUnknown]unknown tikv error
。按照光网显示,该报错的原因是权限、写入samba的盘等问题,我把在测试机上所有的盘上都建立了目录,并且改成了777的权限,报错仍然不变,请问我下面应该怎么弄,我一点线索都没有了

请问,我看官网说明,备份可以放到s3存储中,我是否可以使用阿里云的oss,官网上没有写域名的参数

我扒了下br的源码,从测试部分的代码中扒出来了oss域名的参数,测试下来,可以成功备份到oss里面,但是文件大小一直是31字节,我用恢复命令进行恢复,显示没有恢复任何的数据。请问,我还有啥办法能继续测试功能么

可以重新发一个新帖再描述一下你的问题~

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。