dm执行报错 :invalid connection

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】
执行报错:


{
“ErrCode”: 32001,
“ErrClass”: “dump-unit”,
“ErrScope”: “internal”,
“ErrLevel”: “high”,
“Message”: "mydumper/dumpling runs with error, with output (may empty): ",
“RawCause”: “sql: SELECT COLUMN_NAME,EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=? AND TABLE_NAME=? ORDER BY ORDINAL_POSITION;: invalid connection”,
“Workaround”: “”
}
],

后端日志也是如此


前后端的连接是正常的 我能看到前端执行的sql语句 以及后端用户的连接
偶发性的有如下报错

重启过任务 也没效果

task创建完后立马就报吗?

十几秒

MySQL的前端能看到明显的抽数的sql tidb的后端也能看到dm用户连接 感觉不是连接问题

可以尝试以下几个步骤:

  1. 确保TiDB数据库的连接信息正确:检查您的连接配置,包括主机名、端口号、用户名和密码等,确保与TiDB数据库的连接信息一致。
  2. 检查网络连接:确保您的网络连接正常,可以尝试使用其他工具(如MySQL客户端)连接到TiDB数据库,验证连接是否正常。
  3. 检查TiDB数据库的状态:确保TiDB数据库正常运行,并且没有其他异常或错误。您可以通过TiDB的监控工具或日志来检查数据库的状态。
  4. 检查权限:确保您使用的数据库账户具有足够的权限来执行mydumper或dumpling操作。您可以尝试使用具有更高权限的账户进行操作,或者联系数据库管理员进行权限设置。

测试下报错的SQL呗

我们跑单表是没问题的 所以看起来不像是连接问题,这个报错的 关键字注释掉了 看不到具体的sql

context canceled\ngithub.com/pingcap/errors.AddStack\n\t/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20201126102027-b0a155152ca3/errors.go:174\ngithub.com/pingcap/errors.Trace\n\t/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20201126102027-b0a155152ca3/juju_adaptor.go:15\ngithub.com/pingcap/dumpling/v4/export.decodeFromRows\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/ir.go:68\ngithub.com/pingcap/dumpling/v4/export.(*rowIter).Decode\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/ir_impl.go:39\ngithub.com/pingcap/dumpling/v4/export.WriteInsert\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer_util.go:198\ngithub.com/pingcap/dumpling/v4/export.FileFormat.WriteInsert\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer_util.go:600\ngithub.com/pingcap/dumpling/v4/export.(*Writer).tryToWriteTableData\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer.go:204\ngithub.com/pingcap/dumpling/v4/export.(*Writer).WriteTableData.func1\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer.go:189\ngithub.com/pingcap/br/pkg/utils.WithRetry\n\t/go/pkg/mod/github.com/pingcap/br@v5.0.0-nightly.0.20210329063924-86407e1a7324+incompatible/pkg/utils/retry.go:35\ngithub.com/pingcap/dumpling/v4/export.(*Writer).WriteTableData\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer.go:160\ngithub.com/pingcap/dumpling/v4/export.(*Writer).handleTask\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer.go:103\ngithub.com/pingcap/dumpling/v4/export.(*Writer).run\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/writer.go:85\ngithub.com/pingcap/dumpling/v4/export.(*Dumper).startWriters.func4\n\t/go/pkg/mod/github.com/pingcap/dumpling@v0.0.0-20210407092432-e1cfe4ce0a53/v4/export/dump.go:272\ngolang.org/x/sync/errgroup.(*Group).Go.func1\n\t/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357"

这个错误一般都是连不上上游mysql。
从dm_worker所在的机器,根据你的source配置,连接一下上游mysql试试看。

可以联通 我能看到dump到的sql语句 以及后端tidb的连接线程

1 个赞


目标数据库负载,还有dm的机器负载高吗,可以做一个大包的长ping ,也观测下网络

1 个赞

目标吗 ? 这个是dump阶段 感觉还到不了目标这一步。
导过其中的两个表 是没问题的 ,后端的tidb是个空的 没数据

按照我这边实践,应该是上游表数据太多,调大max-allowed-packet这个参数试下,要是不行,你可以将同步的库分开多几个task

调大max-allowed-packet

查看连接数相关参数,包括连接数、允许的包大小、连接时间等


我之前已经尝试过调整这些东西了 还没啥效果

调成了1G 还是不行

麻烦的是 这个是一直同步的 后期可能有建表的操作 要是按表过滤开的话,这个建表DDL 不一定能同步