br工具备份错误

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

【概述】 场景 + 问题概述
创建了两个库,大概几千的数据量,增量和全量都可以,但是备份正式库的时候报错

【备份和数据迁移策略逻辑】
使用br命令进行全量备份

【背景】 做过哪些操作
执行命令:
/tidb-deploy/br/tidb-toolkit-v5.1.0-linux-amd64/bin/br backup db --pd 172.17.92.64:2379 --db sy --storage local:///nas/backup/all/data/sy_20211115-095120 --ratelimit 128 --log-file /nas/backup/all/log/sy_20211115-095120/backupdb.log

【现象】 业务和数据库现象
直接执行全量备份,直接报错

【问题】 当前遇到的问题
直接执行全量备份,直接报错

【业务影响】

【TiDB 版本】
v5.1.0
BR同版本

【附件】
全量备份错误.txt (17.5 KB)

检查下权限问题吧,执行备份的用户是哪个,对应目录是否已经创建,目录权限是否给了

建议查看sy_20211115-095120文件夹,是否每个tikv都能进行读写

1赞

/nas 备份使用的pd、所有的tikv需要挂载这个网络盘

集群中每台机器的tidb用户的id需要一样吗?现在发现创建的日志和数据文件显示是系统中其他用户。按道理来说应该是tidb用户

tidb集群中kv节点用户id不一致会出现权限问题吗

uid没有限制必须一样,你部署集群用的是哪个用户?

tidb这个用户



我用tidb用户执行的br命令,然后一直报权限问题。

其他用户是啥用户

就是kv节点那台服务器中的其他用户。
这个好像需要uid是一致的,你看我理解的对吗


应该是用同一个用户就行,就是集群部署用户和执行br的用户要一致,我每次都是这样做的,uid没有特别关注。
为啥你的kv节点会是别的用户,这里有点奇怪。部署的时候–user用的哪个用户,还有拓扑文件用的是哪个用户呢,是否和你这里说的其他用户是同一个?

用的tidb用户在中控机直接部署的

应该是uid被占用了

可以调整uid再试试看

直接修改uid,会对tidb集群有影响吗?我是开发对这些不太懂

总结一下:备份错误的原因是某个kv节点的权限不足导致。
kv节点是通过中控机直接部署的,部署的时候中控机使用的是tidb这个用户,uid是1002。
好巧不巧的是出现权限不足的kv节点所在的服务器里面已经存在一个用户uid是1002。
所以导致权限不足的kv节点所在的服务器tidb用户的uid变成了1003。
最终导致执行br命令的时候出现了权限不足的情况。

我是开发,以下操作步骤仅供参考
我是开发,以下操作步骤仅供参考
我是开发,以下操作步骤仅供参考

#提前把占用1002uid的用户uig gid给转成其他的id
usermod -u 1005 gitlab-runner
groupmod -g 1005 gitlab-runner

#停止权限不足机器tidb服务
tiup cluster stop lvya -N 172.17.92.63:4000,172.17.92.63:20160,172.17.92.63:2379

#把tidb的uig gid改成1002
usermod -u 1002 tidb
groupmod -g 1002 tidb

#启动tidb服务
tiup cluster start lvya -N 172.17.92.63:2379,172.17.92.63:20160,172.17.92.63:4000

#原来tidb服务的文件夹的权限用户和用户组都变成了1003,就是变成了一串数组
#这里需要把权限给回去
chown -R tidb:tidb ./tidb-data
chown -R tidb:tidb ./tidb-deploy

:call_me_hand::call_me_hand::call_me_hand:

:+1::+1::+1: