mydumper备份大表出错

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:2.1.9
  • 【问题描述】:使用 mydumper (版本0.9.2) 对一个接近30亿的表导出,报错如下: [ERROR] - Could not read data from db1.table_name1: Lost connection to MySQL server during query

大概过程:昨晚初次备份备份到8个小时,显示如上报错,以为是客户端超时,加大interactive_timeout、wait_timeout参数重新备份,第二次备份至6个多小时又出现一样的报错。

搜一下日志,或者看看监控,TiDB OOM 了么?

https://pingcap.com/docs-cn/stable/faq/tidb/#361-tidb-主要备份方式

mydumper -t 1 降低并发试试


这是那个时间点的日志

  1. 可以通过 /var/log/messages 确认 tidb 进程有没有发生 oom grep -i "out of memory"
  2. 如果确认是 oom 问题,可以考虑加上 -t 1 指定备份并发数量,-r 5000 指定每个并发处理的数据量 试下

第一次确实oom了,我调整-t 1 ,还是oom

加上 -r 5000 指定每个并发处理的数据量 试下

不好意思,麻烦可以提供一下 explain select max(id) ,min(id) from {table_name} 执行结果么
怀疑可能是与 mydumper 备份的时候查询 min max 内容,导致查询超时或 oom 导致的,这个在 v3.0.9 版本中被修复了