dumpling备份数据报/tmp空间不足

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

【概述】 生产环境数据库备份,使用dumpling,出现/tmp空间不足

【备份和数据迁移策略逻辑】
/usr/bin/mysql -h172.29.1.64 -P4000 -uroot -p’password’ -e " update mysql.tidb set VARIABLE_VALUE = ‘720h’ where VARIABLE_NAME = ‘tikv_gc_life_time’"
dumpling -h 172.29.1.64 -P 4000 -u root -p ‘password’ --filetype sql --threads 32 -o $backup_dir/${cur_date} -F 256MiB
/usr/bin/mysql -h172.29.1.64 -P4000 -uroot -p’password’ -e “update mysql.tidb set VARIABLE_VALUE = ‘10m’ where VARIABLE_NAME = ‘tikv_gc_life_time’”
【背景】 dumpling备份

【现象】 备份失败,日志日式/tmp空间不足
[2021/09/13 01:03:37.267 +08:00] [INFO] [collector.go:188] [“backup Failed summary : total backup ranges: 1, total success: 0, total failed: 1”] [unitName=“dump table data”] [error=“Error 1105: write /tmp/1001_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage/chunk.ListInDisk-9558615065: no space left on device”] [errorVerbose=“Error 1105: write /tmp/1001_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage/chunk.ListInDisk-9558615065: no space left on device\ngithub.com/pingcap/errors.AddStack\ \tgithub.com/pingcap/errors@v0.11.5-0.20200917111840-a15ef68f753d/errors.go:174\ github.com/pingcap/errors.Trace\ \tgithub.com/pingcap/errors@v0.11.5-0.20200917111840-a15ef68f753d/juju_adaptor.go:15\ github.com/pingcap/dumpling/v4/export.(*tableData).Start\ \tgithub.com/pingcap/dumpling@/v4/export/ir_impl.go:97\ github.com/pingcap/dumpling/v4/export.(*Writer).WriteTableData.func1\ \tgithub.com/pingcap/dumpling@/v4/export/writer.go:179\ github.com/pingcap/br/pkg/utils.WithRetry\ \tgithub.com/pingcap/br@v0.0.0-20201119111016-600102357a27/pkg/utils/retry.go:34\ github.com/pingcap/dumpling/v4/export.(*Writer).WriteTableData\ \tgithub.com/pingcap/dumpling@/v4/export/writer.go:161\ github.com/pingcap/dumpling/v4/export.(*Writer).handleTask\ \tgithub.com/pingcap/dumpling@/v4/export/writer.go:104\ github.com/pingcap/dumpling/v4/export.(*Writer).run\ \tgithub.com/pingcap/dumpling@/v4/export/writer.go:86\ github.com/pingcap/dumpling/v4/export.(*Dumper).startWriters.func4\ \tgithub.com/pingcap/dumpling@/v4/export/dump.go:253\ golang.org/x/sync/errgroup.(*Group).Go.func1\ \tgolang.org/x/sync@v0.0.0-20200625203802-6e8e738ad208/errgroup/errgroup.go:57\ runtime.goexit\ \truntime/asm_amd64.s:1357”]

【问题】dumpling备份失败

【业务影响】
无法备份
【TiDB 版本】
v4.0.8
【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

tmp-storage/chunk.ListInDisk-9558615065: no space left on device 这个目录问题

这个目录是dumpling自行创建的吧,我看服务器实际是没有这个目录的

如果dumpling是需要一个临时目录来存储一下,那么这个目录是否能某个参数指定?因为系统盘通常就50G以内

tmp目录下没有空间吗?

看下备份是否限制了内存,看下监控内存使用情况

/tmp是有空间的
根目录有200G+呢
%E5%9B%BE%E7%89%87

1 个赞

看监控内存在备份的时候是耗尽了

那和目录应该没有关系 ,麻烦看下这个tidb_mem_quota_query 参数

在执行备份的时候限制下内存

请根据这个设置一下,然后在试试

备份是在监控服务器上面进行的,报/tmp空间不足到底是报的备份时候访问的tidb节点不足,还是我执行备份dumpling命令的服务器/tmp空间不足?

另外今天看dumpling使用文档,加了个-r参数,线程数也从32降到16了明天观察还报错不

tidb_mem_quota_query使用默认的1G

添加后观察

备份的时候访问的tidb节点的根目录磁盘使用情况

这个主要原因还是内存

加了-r参数,-t 参数从32降到16之后,昨晚备份成功,完整备份27G,后面看看会不会再出问题,多谢

1 个赞

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