allens
(Allens)
2020 年9 月 4 日 09:10
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【TiDB 版本】:v4.0.5
【问题描述】:尝试使用DM迁移MySQL 5.7到TiDB 4.0.5,参考官网的操作,出现如下报错:
1.Unknown character set: ‘gbk’
2.packet for query is too large. Try adjusting the ‘max_allowed_packet’ variable on the server
想了解下:
1.看了下官网,TiDB目前不支持gbk,这个后续有计划吗?
2.max_allowed_packet 这个参数目标端和源端都调整为1G,但是还是报错,这个query的packet不至于这么大的吧,是不是还要需要优化调整的参数?
1 个赞
sultan8252
(Sultan.Su@PingCAP)
2020 年9 月 4 日 10:47
2
您好 关于 GBK 支持 目前还没有计划,这部分也主要取决于 TiDB 的支持.
packet for query is too large. Try adjusting the ‘max_allowed_packet’ variable on the server 这个报错是在 DM load 阶段报的吗? 可以考虑修改 dumper 数据导出的 批大小.
DM 2.0.0 rc.2 可以参考
https://github.com/pingcap/dm/blob/v2.0.0-rc.2/tests/http_apis/conf/dm-task.yaml#L31
DM 1.0.6 可以参考
https://github.com/pingcap/dm/blob/v1.0.6/tests/http_apis/conf/dm-task.yaml#L33
allens
(Allens)
2020 年9 月 5 日 07:59
3
你好,感谢回复,是的,在开启任务后报错,这边修改了task.yaml如下参数:
mydumpers:
4304-replica-01:
threads: 32
chunk-filesize: 0
skip-tz-utc: true
statement-size: 1000000
extra-args: “”
重启task,还是报一样的错误,发现日志中显示的是:
“max-allowed-packet”:67108864,“statement-size”:0
就是这两个参数的修改都没效果,
用如下重启dm:
tiup dm stop dm-1
tiup dm start dm-1
然后重启任务,报另外错误:
parse mydumper metadata error: open dumped_data.dm-1/metadata: no such file or directory
是我配置不合理,还是重启dm后,metadata会丢失吗?这个感觉是不是有点不合理呢。
这道题我不会
(Lizhengyang@PingCAP)
2020 年9 月 5 日 14:09
4
麻烦提供一下task.yaml的具体配置内容,以及 query-status {taskname} 的查询结果,谢谢!
数据源配置文件的参数需要加上max-allowed-packet,然后设置成比67108864更大
metadata的问题,需要看一下query-status。另外帮忙看下下游的 {dm_meta} 库中的 {task-name}_syncer_checkpoint 的内容
allens
(Allens)
2020 年9 月 8 日 01:14
7
你好,task.yaml内容如下:
name: “dm-bi-4304”
task-mode: “all”
ignore-checking-items: [“auto_increment_ID”, “table_schema”]
target-database:
host: “172.19.51.31”
port: 4000
user: “tidb_dm_user”
password: “r6XXcPY+S3ixHmWJl79Qg0C3Kd4GJ/3poSYyBOA=”
mysql-instances:
source-id: “4304-replica-01”
4304-replica-01:
do-dbs: [“bidata_monitor”, “ga_user_profile”, “gt_user_profile_v5”, “lbs”]
mydumpers:
4304-replica-01:
threads: 32
chunk-filesize: 0
skip-tz-utc: true
statement-size: 1000000
extra-args: “”
query-status内容如下:
{
“result”: true,
“msg”: “”,
“sources”: [
{
“result”: true,
“msg”: “”,
“sourceStatus”: {
“source”: “4304-replica-01”,
“worker”: “dm-172.19.51.24-8262”,
“result”: null,
“relayStatus”: null
},
“subTaskStatus”: [
{
“name”: “dm-bi-4304”,
“stage”: “Paused”,
“unit”: “Load”,
“result”: {
“isCanceled”: false,
“errors”: [
{
“ErrCode”: 11001,
“ErrClass”: “functional”,
“ErrScope”: “internal”,
“ErrLevel”: “high”,
“Message”: “parse mydumper metadata error: open dumped_data.dm-bi-4304/metadata: no such file or directory”,
“RawCause”: “”,
“Workaround”: “”
}
],
“detail”: null
},
“unresolvedDDLLockID”: “”,
“load”: {
“finishedBytes”: “0”,
“totalBytes”: “0”,
“progress”: “NaN %”,
“metaBinlog”: “”
}
}
]
}
]
}
allens
(Allens)
2020 年9 月 8 日 01:18
8
你好,max_allowed_packet 这个参数已经在源端和目标端通过如下命令修改:
set global max_allowed_packet=11024 1024*1024;
这样可以生效的吧,还是说dm读取的是 mysql.cnf配置文件?
query-status上一条已发
{task-name}_syncer_checkpoint查无数据
select * from dm-bi-4304_syncer_checkpoint
limit 10;
Empty set (0.00 sec)
还需要修改配置文件 的。你的DM版本是多少,2.0的话是source.yaml里,from
下max-allowed-packet
另外可以传一下dm-172.19.51.24-8262这个worker的日志、以及dm-bi-4304_loader_checkpoint的内容吗,感谢
allens
(Allens)
2020 年9 月 8 日 06:01
12
你好,
谢谢, 这个方法可行,在task.yaml配置文件中加入参数:max-allowed-packet=134217728
改了之后没有报错,
但是在接下来task运行过程中,tidb-server占用大量CPU,及几乎全部内存,
而且数据导入进度也没有更新,query-status打印如下:
“subTaskStatus”: [
{
“name”: “dm-bi-4304-2”,
“stage”: “Running”,
“unit”: “Load”,
“result”: null,
“unresolvedDDLLockID”: “”,
“load”: {
“finishedBytes”: “41397722”,
“totalBytes”: “6363142205”,
“progress”: “0.65 %”,
“metaBinlog”: “(mysql4304-bin.000183, 3860275)”
}
}
]
dm-work节点持续打印日志:
[2020/09/08 13:46:44.820 +08:00] [INFO] [status.go:75] [“progress status of load”] [task=dm-bi-4304-2] [unit=load] [finished_bytes=41397722] [total_bytes=6363142205] [total_file_count=105] [progress=“0.65 %”]
麻烦看看,谢谢
allens
(Allens)
2020 年9 月 8 日 06:27
14
yilong
(yi888long)
2020 年9 月 8 日 08:53
15
麻烦上传下 tidb.log 看下是否有报错,多谢。
allens
(Allens)
2020 年9 月 9 日 03:02
20
你好,
这边在task.yaml的loader中加入参数:
pool-size: 8
但是问题依旧,tidb-server进程占用太多内存和CPU,但是导数进度并没有更新