lmy012
(Lmy012)
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】: DM v1.0.6
- 【问题描述】:分库分表场景下,有个同步任务需要全量+增量同步,但是启动任务后,一直会报错,并重新dump文件。还请帮忙看下这个问题,谢谢。
相关日志:
log.txt2 (21.1 KB)
同步任务配置
mydumpers:
mysql-replica-06.dump:
mydumper-path: bin/mydumper
threads: 8
chunk-filesize: 256
skip-tz-utc: true
extra-args: -r 10000 --no-locks
修改过上游mysql的以下参数,但是没有效果
set global net_read_timeout=600;
来了老弟
2
看下 mysql-server 是否重启,可以检查下其是否 oom。
可以将 thread 8 换成 thread 2 或者 4 ,降低并发度再试下、
lmy012
(Lmy012)
3
找dba确认了,没有重启、也没有OOM。另外thread线程数2、4、8我都试过,一直会重新dump。
其他表也有5、6千万的数据量,但是没有这种问题,这个表的数据量大概在9000万,数据量其实也差的不是很远,但现在一直没成功。还请帮忙看看是否有解决方法。
来了老弟
4
dmesg -T | grep mysql-server 的信息实锤下。
这边从日志看到,dumpling 在 dump 数据时,出现
所以需要看下。mysql 的状态。
来了老弟
7
Telnet 下能连接到 mysql 吗。再看下 mysql log 看是否有连接的报错?
反馈下 max_allowed_packet 在 mysql 中的参数设置。
来了老弟
9
辛苦使用 dumpling 执行下备份语句。
参数配置在 log 中又体现,需要写下格式。
[2020/09/04 08:37:39.668 +08:00] [INFO] [mydumper.go:284] ["create mydumper"] [task=broker_client_history] [unit=dump] [argument="[--host,10.71.64.60,--port,3306,--user,bigdata_ro,--outputdir,./dumped_data.broker_client_history,--logfile,/dev/stderr,--verbose,3,--threads,8,--chunk-filesize,256,--skip-tz-utc,-r,10000,--no-locks,--tables-list,hdb_broker_7.broker_client_history,hdb_broker_9.broker_client_history,hdb_broker_15.broker_client_history,hdb_broker_17.broker_client_history,hdb_broker_5.broker_client_history,hdb_broker_11.broker_client_history,hdb_broker_3.broker_client_history,hdb_broker_31.broker_client_history,hdb_broker_29.broker_client_history,hdb_broker_13.broker_client_history,hdb_broker_19.broker_client_history,hdb_broker_25.broker_client_history,hdb_broker_27.broker_client_history,hdb_broker_1.broker_client_history,hdb_broker_21.broker_client_history,hdb_broker_23.broker_client_history]"]
lmy012
(Lmy012)
10
是想看看mydumper、dumpling 工具是否有一样的现象吗?dumpling 没用过,我先看看文档
lmy012
(Lmy012)
12
数据库分了几十个库,奇数库在一个mysql上、偶数库在另外一个mysql上。通过mydumper的方式进行导数,偶数库可以正常导完,基数库有一个库导数失败,单独去导这个库,也还是会失败。
然后通过重启task,但基数库、偶数库都会失败。
来了老弟
13
select * from hdb_broker_13.broker_client_history limit 10;
看下能正确返回吗
来了老弟
15
看下 mudumper 执行的服务器,message 中是否有 mydumper 相关的 log 呢?
lmy012
(Lmy012)
16
dm集群的话,只看到昨天有OOM的情况,但现在看也还一直在重复dump
[Mon Sep 7 08:23:25 2020] Out of memory: Kill process 2586 (dm-worker) score 933 or sacrifice child
[Mon Sep 7 08:23:25 2020] Killed process 2586 (dm-worker), UID 1000, total-vm:17231320kB, anon-rss:15265536kB, file-rss:0kB
, shmem-rss:0kB
[Mon Sep 7 08:23:25 2020] dm-worker invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
[Mon Sep 7 08:23:25 2020] dm-worker cpuset=/ mems_allowed=0
[Mon Sep 7 08:23:25 2020] CPU: 4 PID: 77491 Comm: dm-worker Kdump: loaded Not tainted 3.10.0-1062.el7.x86_64 #1
[Mon Sep 7 08:23:25 2020] Hardware name: Red Hat KVM, BIOS 1.11.0-2.el7 04/01/2014
来了老弟
17
在 mysql 中看下 timeout 的相关设置。
再检查下 network 情况,看下带宽是否使用率
现在问题是单独去导出 hdb_broker_13.broker_client_history 库的话,会失败,但实际上这个分库并没有比其他库大多少吧
。
我建议尝试下 dumpling 导出这个库试试,语法跟 mydumper 类似。可以参考 https://github.com/pingcap/dumpling/blob/master/docs/cn/user-guide.md
lmy012
(Lmy012)
20
每个库的数据量大概都在280多万,这个库也一样,早上dump这个库的数据,2次都是在260万的时候就异常了。
另外,就算用dumpling能成功,也没办法解决DM同步的问题吧?