请问br备份,必须是在tikv服务器上使用tidb用户备份吗?

不懂就问,请问哥位大佬,br备份,必须是在tikv服务器上使用tidb用户备份吗?我是在中控机中安装br,然后使用root用户执行备份报以下错误?不知道我错在哪里?

[root@monitor ~]# tiup br backup full --pd “192.168.1.183:2379” --storage “/opt/tidb.backup/full-snapshot-${date}” --log-file fullbackup.log

A new version of br is available: → v8.3.0

To update this component:   tiup update br
To update all components:   tiup update --all

The component br version is not installed; downloading from repository.
download https://tiup-mirrors.pingcap.com/br-v8.3.0-linux-amd64.tar.gz 89.28 MiB / 89.28 MiB 100.00% 1.13 MiB/s
Starting component br: /root/.tiup/components/br/v8.3.0/br backup full --pd 192.168.1.183:2379 --storage /opt/tidb.backup/full-snapshot- --log-file fullbackup.log
Detail BR log in fullbackup.log
Full Backup <…> 0.00%[2024/11/07 11:02:41.429 +08:00] [INFO] [collector.go:77] [“Full Backup failed summary”] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0] [backup-total-ranges=119] [backup-total-regions=119]
Error: error happen in store 2: File or directory not found on TiKV Node (store id: 2). workaround: please ensure br and tikv nodes share a same storage and the user of br and tikv has same uid.: [BR:KV:ErrKVStorage]tikv storage occur I/O error

继续执行命令:
[root@monitor ~]# tiup br backup full --pd “192.168.1.183:2379” --storage “/opt/tidb.backup/full-snapshot-${date}” --log-file fullbackup.log
Starting component br: /root/.tiup/components/br/v8.3.0/br backup full --pd 192.168.1.183:2379 --storage /opt/tidb.backup/full-snapshot- --log-file fullbackup.log
Detail BR log in fullbackup.log
[2024/11/07 17:02:39.252 +08:00] [INFO] [collector.go:77] [“Full Backup failed summary”] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0]
Error: GC safepoint 453763257422577664 exceed TS 453757779643465729: [BR:Backup:ErrBackupGCSafepointExceeded]backup GC safepoint exceeded

你所有的TIKV节点上都有 --storage “/opt/tidb.backup/full-snapshot-${date}” 这个目录嘛

建议是挂载nas存储,后面恢复的时候方便

我只是在中控机上创建了/opt/tidb.backup/ 这个目录,没有在tikv服务器中创建,这与我的理解不太一样,我理解的是在哪台机器上执行备份,备份文件就保存在那台机器上,难道tr的备份只能保存在tikv服务器上吗?

可以使用nas

br是物理备份直接从每个kv节点备份文件到服务器本地磁盘的

指定一下:–backupts 试试

你理解错了 /opt/tidb.backup/ 是指tikv上的目录,每个tikv会自己机器上的把leader regions备份到该目录,如果你想备份到一起,可以用nfs配共享盘或者用s3存储


你现在就是备份到tikv服务器的本地目录,要想不备份到本地就用共享存储就可以,多看一下文档哈

3台tikv服务器上创建了/opt/tidb.backup目录,但这个目录不是共享存储目录,是本地磁盘上的目录。
备份后仍然报错,难道tidb备份只能备份在共享存储或s3这些共享设备上吗?且必须把共享挂载到tikv和tr服务器上才能备份吗?

在tikv服务器


这里有详细说明,如果不用共享存储,会备份到 TiKV 本地,且不能直接利用这些备份来恢复。 既然是用来做容灾或者备份,直接放到共享存储上是最佳实践。
可以看一下官方推荐的最佳实践: https://docs.pingcap.com/zh/tidb/stable/br-use-overview

Error: error happen in store 2: File or directory not found on TiKV Node (store id: 2) 检查一下tikv的备份目录,–storage是如果没指定S3等存储会备份到tikv节点,不是你的中控机节点

Error: error happen in store 2: File or directory not found on TiKV Node 你这个报错说了,tikv节点没有发现备份文件或目录。建议备份到oss/s3/minio等对象存储,方便恢复。

[root@tikv01 ~]# ll /opt/tidb.backup/ -ld
drwxr-xr-x 2 tidb admin 6 Nov 10 17:06 /opt/tidb.backup/

tikv节点上已经创建了tidb.backup目录,但是不知道为什么识别不到。

咱不能给文件夹名称改成正常点的嘛,比如不带 . 改成下划线呢

workaround: please ensure br and tikv nodes share a same storage and the user of br and tikv has same uid

从这个报错,我有点无法理解,我是用root用户安装的tiup, 然后br自然而然是使用root安装的tiup安装, 其它节点都是使用tidb用户安装,那上面说的 the user of br and tikv has same uid, 这怎么搞??? 这意思是br和tikv的属主是要求同一个用户了,一个是root一个是tidb, 那不是无法备份了吗?

不是的,如果备份到磁盘的话,需要搞一块共享盘,挂到每一个kv节点去,kv节点的tidb用户uid也得一样吧,不然应该还会报权限不足。

谢谢,我整一个共享盘试试。