taosdata / TDengine

High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios
https://tdengine.com
GNU Affero General Public License v3.0
23.41k stars 4.86k forks source link

taosdump Segmentation fault #17246

Closed zhuming19791109 closed 6 months ago

zhuming19791109 commented 2 years ago

Bug Description taosdump 使用时,导出错误

To Reproduce Steps to reproduce the behavior:

  1. /usr/local/bin/taosdump -u root -ptaosdata -S "2022-10-09 07:00:00.000+0800" -E "2022-10-09 09:00:00.000+0800" -o /home/backup/tdengine/mbasic-$(date +\%F) -T 8 -D mbasic

Expected Behavior 正常导出数据

Screenshots 9ed953350fd949c559422152b146aab

Environment (please complete the following information):

Additional Context /root/myshell/taosdumpday.sh: line 4: 83062 Segmentation fault /usr/local/bin/taosdump -u root -ptaosdata -S "2022-10-09 07:00:00.000+0800" -E "2022-10-09 09:00:00.000+0800" -o /home/backup/tdengine/mbasic-$(date +\%F) -T 8 -D mbasic [root@SEU-9 tdengine]# cat /root/myshell/taosdumpday.sh

!/bin/bash

  mkdir /home/backup/tdengine/mbasic-$(date +\%F)
  #/usr/local/bin/taosdump -c /usr/local/taos/cfg/  -u root  -ptaosdata -S "$(date --date=yesterday +\%F) 00:00:00.000+0800" -E "$(date +\%F) 00:00:00.000+0800" -o /home/backup/tdengine/mbasic-$(date +\%F) -T 8  -D mbasic
  /usr/local/bin/taosdump  -u root  -ptaosdata -S "2022-10-09 07:00:00.000+0800" -E "2022-10-09 09:00:00.000+0800" -o /home/backup/tdengine/mbasic-$(date +\%F) -T 8  -D mbasic
  [root@SEU-9 tdengine]# 
zhuming19791109 commented 2 years ago

补充:taosdump version:taosTools-1.4.1-Linux-x64.rpm

sangshuduo commented 2 years ago

taosTools 1.4.1 很老了,请下载最新版本

zhuming19791109 commented 2 years ago

好的,对于taosTools的版本和tdegine的匹配,有什么对应匹配关系吗?

sangshuduo commented 2 years ago

好的,对于taosTools的版本和tdegine的匹配,有什么对应匹配关系吗?

taosTools 不支持 TDengine 2.0.x ,对 2.2 有限支持,2.4 之后可以完整支持。 目前可以用最新版本 taosTools,未来随着 TDengine API 变化也可能会需要分段对应。

zhuming19791109 commented 2 years ago

用了最新的taosTools版本:taosTools-2.2.3-Linux-x64.tar.gz,还是不成功!

Screenshots: 1d12033225edc1121860c4934315cb3

table info: 4407dab3c13d8315e51a4b2a1754fdd

Additional Context:命令还是用的一样,还是报错! /usr/local/bin/taosdump -u root -ptaosdata -S "2022-10-09 07:00:00.000+0800" -E "2022-10-09 09:00:00.000+0800" -o /home/backup/tdengine/mbasic-$(date +\%F) -T 8 -D mbasic

sangshuduo commented 2 years ago

Unable to establish connection 错误意味着无法连接服务端,通常是网络相关问题

zhuming19791109 commented 2 years ago

试了多次,还是一样的状况,到最后都100%了,备份会导致服务崩溃 image

报错信息: d4212c8b545cbe3033b4b94e7279e65

sangshuduo commented 2 years ago

监控一下是否备份过程系统内存使用过多导致服务崩溃

zhuming19791109 commented 2 years ago

从内存监控看,tdengine自己的策略一旦内存即将耗尽,会自动重启(服务短暂中断2分钟),目前内存32G,可用大改25G(td重启后释放的内存),一旦同时加上taosTools导出,会造成tdengine的崩溃(不可用),多少内存合适呢,是否能彻底解决问题?

zabbix的内存图: f0ea5d60470bd6a70d00b5b43b88738

zhuming19791109 commented 2 years ago

准备把内存加到128G,应该够了,还有一个问题,目前的子表大概在400多万,用taosdump备份导出的时间都是非常慢的,这个是不是只有减少子表数量才能解决,有啥加快的办法吗?

sangshuduo commented 2 years ago

准备把内存加到128G,应该够了,还有一个问题,目前的子表大概在400多万,用taosdump备份导出的时间都是非常慢的,这个是不是只有减少子表数量才能解决,有啥加快的办法吗?

如果 CPU 核数多可以多开一些线程,比如 CPU 核数的两倍,这个对数据有加速作用。但 400万子表的元数据拉取耗时还是会很长,taosdump 后面还会做一些优化,不过作为逻辑备份工具 taosdump 优化空间有限,将来涛思会推出更接近物理备份的工具,会快很多