Dumping备份程序报错

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:
    V4.0.8
  • 【问题描述】:
    使用Dumping 备份:命令如下
dumpling  -u ${user} -p ${password} -h xxx -P 4000 -o ${bakdir}/tidb_dumping_${date}  -F 256MiB --filetype sql --threads 8

程序上每天都有报错。报错内容类似如下:

SQLSTATE[HY000]: General error: 8027 Information schema is out of date: schema failed to update in 1 lease, please make sure TiDB can connect to TiKV (SQL: update `XXXXXXX)
  • 扩容了TIKV节点,现象有好转,但不能根治,请问备份这个方案是怎么做的或者有什么好调优的方案吗?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

请参考 FAQ:

网络没有问题
DML语句也没有被Kill

看一下具体的 TIKV 写入负载情况,如果是扩容有好转,有个可能是你的磁盘性能或者 TIKV 吞吐不够,导致 TiKV 的复杂满了。 thread 8 这个并发并不高,可以确认一下是否按照官网推荐配置部署的集群。

配置都是超出官方推荐的 。

那看一下 TiKV 写入负载情况,先按照性能地图排查一下。https://book.tidb.io/session3/chapter4/performance-map.html

有没有关于dumping备份工具的一些参数优化之类的。

dumpling 参数优化主要就是 并发数

https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#通过并发提高-dumpling-的导出效率

--params "tidb-force-priority=LOW_PRIORITY,tidb_distsql_scan_concurrency=5"

我增加了这个参数怎么样。

这个是 dumpling 导出数据,查询 TIDB 集群采用 LOW_PRIORITY 线程池;

这个是 dumpling 导出输出,采用并发 5 的线程并发进行 distsql scan

可能会导致 LOW_PRIORITY 就被低优先级执行,导出速度会比较慢。

那这个也会降低备份的所带来的影响吧?

是的哈

dumpling -u xxx -p xxxx -h xxxx -P 4000 -o ./tidb_dumping_20210125 -F 256MiB --params "tidb-force-priority=LOW_PRIORITY,tidb_distsql_scan_concurrency=5" --filetype sql  --threads 8 

我这个怎么会报语法报错呢。


这样不对吗

--params "tidb-force-priority=LOW_PRIORITY,tidb_distsql_scan_concurrency=5"

TiDB 的变量是: tidb_force_priority 不是 tidb-force-priority
https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_force_priority

…也许可以更正一下这篇blog里面的内容,有关于tidb_force_priority,这里面写的是tidb-force-priority

好的。感谢反馈。

请教一下,您这便是备份数据库的需求吗,备份数据主要用于灾备,还是其他场景呀? 如果用于灾难备份,或者恢复数据在其他 TiDB 集群,推荐使用 https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-tool

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。