Server version: 5.7.25-TiDB-v2.1.8
集群信息:
tidb:1台
pd: 1台
kv:3台
在使用mydumper备份是时候报错。Lost connection to MySQL server during query
./mydumper -h 127.0.0.1 -P 4000 -u username -p password -t 16 -F 64 -B dbname --skip-tz-utc -o /backups/dbane
Server version: 5.7.25-TiDB-v2.1.8
集群信息:
tidb:1台
pd: 1台
kv:3台
在使用mydumper备份是时候报错。Lost connection to MySQL server during query
./mydumper -h 127.0.0.1 -P 4000 -u username -p password -t 16 -F 64 -B dbname --skip-tz-utc -o /backups/dbane
可以尝试将 -t 调小一些,可能下游有 oom 导致连接断开。
和指定的并发无关,我尝试修改,测试过 设置为1.还是报错
** (mydumper:15320): CRITICAL **: 10:19:04.199: Could not read data from gateway.method_invoke_detail: Lost connection to MySQL server during query
** (mydumper:15320): CRITICAL **: 10:19:04.200: Error dumping schemas (gateway.method_invoke_detail): MySQL server has gone away
上面没有谈到你的数据量,如果比较大的话,下面的建议应该对你有帮助。
连接断开的话,可能有下面两个原因
1 备份时长大于gc时长
连接断开的问题,建议你看一下tidb的gc时长,如果你没有设置,应该为默认的10m0s,
如果在备份的时候,如果备份的时间超过默认的gc时长:10分钟,就会出现断开的问题。
建议参考官方方法,设置比较大的gc时长,等备份结束之后,再设置回来。
2 tidb发生oom
如果备份的数据量比较大,因为看到你的tidb版本是2.1.8,而tidb在2.1.13之前,使用mydumper备份数据的时候,都会将数据读到内存,容易引发tidb oom。
这种情况下,1)是建议你调大tidb的内存阈值。 2)是升级你的tidb版本。
希望上面的建议能对你有帮助
数据量很大嘛?
不会导致断开,会导致备份失败
有可能,但是现在的数据量也不是很大。 最初是有备份成功过的
尝试调整gc时常。 文档上的
update mysql.tidb set VARIABLE_VALUE = '720h' where VARIABLE_NAME = 'tikv_gc_life_time';
但是,还是出现同样的错误,Lost connection to MySQL server during query
tidb的内存阈值在那里调整?
8百万行,3个kv节点,单节点上data目录 7G+ ,好像是oom了
如果是oom了,比较简单的方式,调整容器的内存阈值,尽可能的大。
另外一种方法就是建议你升级你的tidb版本,升级到2.1.3之后。
具体的看tidb相关的issue:
超时默认gc时长,是会出现上面的lost connetion to mysql 错误的
版本升级到了最新过的 Server version: 5.7.25-TiDB-v3.0.5
但是备份还是有问题,尝试过调整备份的线程 -t 1
但是备份还是失败。
也修改过gc的时长
update mysql.tidb set VARIABLE_VALUE = '720h' where VARIABLE_NAME = 'tikv_gc_life_time';
可是问题依旧
** (mydumper:717): CRITICAL **: 10:30:58.382: Could not read data from gateway.method_invoke_detail: Lost connection to MySQL server during query
升级后是否还是出现了 OOM?
看一下你这边 tidb-server 进程有没有 oom 重启过吧。另外确认下如果是数据量很小的情况,会出现这样的情况吗?
看日志是有出现oom。但是数据量不算大啊
| data_length_MB | index_length_MB |
+----------------+-----------------+
| 60977.28MB | 990.58MB |
+----------------+-----------------+```
tidb-server 的机器内存有多大呀。
total used free shared buff/cache available
Mem: 7821 552 6742 0 526 7016
Swap: 0 0 0
TiDB 改版的 mydumper 具备单表多并发备份功能,适用于某张表特别大,占用很多内存的场景:
你是在当前机器查这台机器的 tidb-server 这样的话,tidb-server 要占内存,你读过来还要用 8G 肯定不够了呀。
换一台机器试试,或者试一下最新版。