mydumper runs with error: fork/exec bin/mydumper: argument list too long

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

  • 【TiDB 版本】:3.0
  • 【问题描述】:使用dm迁移数据时,在dump数据时出错。问题原因可能是上游mysql数据中有3700多张表,在dm启动task时,自动生成table-list的参数太长了。 是否有什么方式可以通过指定正则表达式的方式来状态这个参数?

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

你好,如果自动生成的 table-list 参数太长。

你可以为 mydumper 在 extra-args 手动用原始的 -x 来指定正则试试(https://pingcap.com/docs-cn/stable/reference/tools/data-migration/configure/task-configuration-file-full/#完整配置文件示例 )。

按照文档进行了调整,没有成功,再帮忙看一下呢 task.yaml修改内容,增加: -X dbdemo.* mydumpers: dump: mydumper-path: bin/mydumper threads: 4 chunk-filesize: 64 skip-tz-utc: true extra-args: “–no-locks -X dbdemo.*”

dm-worker.log中,创建dump的那行日志,将里面的库名和表名做了调整。其中将所有的表都生成出来了 [2020/03/17 14:19:10.511 +08:00] [INFO] [mydumper.go:276] [“create mydumper”] [task=task] [unit=dump] [argument="[–host,10.6.0.1,–port,3306,–user,dmwoker,–outputdir,./dumped_data.task,–logfile,/dev/stderr,–verbose,3,–threads,4,–chunk-filesize,64,–skip-tz-utc,–no-locks,-X,dbdemo.*,–tables-list,dbdemo.log_2017_08_17,dbdemo.log_2017_08_18]"]

上面打错了,是小写的 -x(或者是 --regex)

非常感谢!已经搞定了。 后面还有一些关于数据迁移的问题,以后再建帖子。再次感谢!

您好: 方便把mydumper当时的报错信息发一下吗? 方便以后的用户可以查看此类问题,多谢.

你好,标题就是报错信息。直接在日志文件当中截取出来的。

好的,感谢分享.