mydumper 导出数据错误

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】v2.0.2 迁移到v4.0.0

【问题描述】
使用mydumper导出数据出现的问题

mydumper -h 127.0.0.1 -P 4000 -u root -t 8 -F 64 -B kkpush -T t_innerkkidpool64 --skip-tz-utc -o ./var
错误信息:
** (mydumper:3154): CRITICAL **: Couldn’t generate @@tidb_snapshot: line 1 column 11 near " STATUS" (total length 18)

看错误应该是执行 SHOW MASTER STATUS 失败,手动在 v2.0.2 TiDB 上执行 SHOW MASTER STATUS 会报错吗?

您好,报错了

应该 TiDB 2.0.2 支持 show master status的问题,如果使用 https://github.com/maxbube/mydumper 这个官方 mydumper 可以解决吗?

目前使用的是mydumper v0.10.1版本.该版本报这个错误。

mydumper --version 辛苦反馈下
咱们集群的数据量大概多少?dump 的需求是升级?

您好,
版本:mydumper 0.10.1, built against MySQL 5.7.32-35

量大概6亿左右,为了升级下tidb的版本,升级到4.0.0

你好,因为 mydumper 我们对其进行过优化,

这个事情我也干过,mydumper对低版本的tidb兼容性不太好,我最后是用的mysqldump

1 个赞

我上次迁的是tidb-v1.0.8:rofl:

数据量大的话还可以试试 Dumpling + Lightning

我这个低版本支持这两个工具吗:)

我没测过,但是官方当时建议过我这么干,后来我这边只迁移了少量核心业务,数据量不大,就直接用mysqldump了

1 个赞

导入是可以用 https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-overview

导出, dumpling 可以试试,如果愿意可以帮助我们试下 mydumper 带 githash 的版本

请问下我使用dumpling可以使用 https://download.pingcap.org/tidb-toolkit-v4.0.8-linux-amd64.tar.gz 。该版本吗?

使用dumpling出现的问题:

-bash-4.2# ./dumpling -uroot -P 4000 -h172.17.11.58 --filetype sql -o /tmp/test -F 256MiB
Release version: v4.0.8
Git commit hash: b84f64ff362cedcb795aa23fa1188ba7b7c9a7d7
Git branch: heads/refs/tags/v4.0.8
Build timestamp: 2020-10-30 08:14:27Z
Go version: go version go1.13 linux/amd64

[2021/03/16 20:03:28.954 +08:00] [INFO] [config.go:180] [“detect server type”] [type=TiDB]
[2021/03/16 20:03:28.954 +08:00] [INFO] [config.go:198] [“detect server version”] [version=2.0.2]
[2021/03/16 20:03:28.956 +08:00] [ERROR] [main.go:230] [“dump failed error stack info”] [error=“SHOW MASTER STATUS: SHOW MASTER STATUS: Error 1105: line 1 column 11 near " STATUS” (total length 18)"] [errorVerbose=“err = SHOW MASTER STATUS: Error 1105: line 1 column 11 near " STATUS” (total length 18)\ goroutine 1 [running]:\ runtime/debug.Stack(0x149e060, 0xc0004180e0, 0x149fbc0)\ \t/usr/local/go/src/runtime/debug/stack.go:24 +0x9d\ngithub.com/pingcap/dumpling/v4/export.withStack(0x149e060, 0xc0004180e0, 0xc0000ae000, 0x1222d20)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/error.go:59 +0x8d\ngithub.com/pingcap/dumpling/v4/export.simpleQueryWithArgs(0xc00040c120, 0xc0002511a8, 0x1222d20, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/sql.go:590 +0x135\ngithub.com/pingcap/dumpling/v4/export.simpleQuery(...)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/sql.go:584\ github.com/pingcap/dumpling/v4/export.ShowMasterStatus(0xc00040c120, 0x14c0f40, 0xc00041e1c0, 0xc00040c120, 0x0, 0x0)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/sql.go:405 +0x9a\ngithub.com/pingcap/dumpling/v4/export.getSnapshot(...)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/sql.go:473\ github.com/pingcap/dumpling/v4/export.Dump(0x14c0f80, 0xc0000ae000, 0xc0000d0dc0, 0x0, 0x0)\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/v4/export/dump.go:79 +0x1788\ main.main()\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/cmd/dumpling/main.go:228 +0x1755\ \ SHOW MASTER STATUS"] [stack=“main.main\ \t/home/jenkins/agent/workspace/ild_dumpling_multi_branch_v4.0.8/go/src/github.com/pingcap/dumpling/cmd/dumpling/main.go:230\ runtime.main\ \t/usr/local/go/src/runtime/proc.go:203”]

dump failed: SHOW MASTER STATUS: SHOW MASTER STATUS: Error 1105: line 1 column 11 near " STATUS" (total length 18)

应该是老版本的 TiDB 没有支持 show master status 导致。可以试一下在 Mydumper 添加 –tidb-snapshot 指定 snapshot 看看能不能绕过该问题?

无法绕过此问题呢

辛苦给一下 mydumper 详细的输出。

-bash-4.2# ./mydumper -h 172.17.11.58 -u root -P 4000 -r 10000 -t 4 –tidb-snapshot -o /tmp/test

** (mydumper:24771): CRITICAL **: 15:38:06.978: Couldn’t generate @@tidb_snapshot: line 1 column 11 near " STATUS" (total length 18)