强杀服务、重启系统及断电对 TDengine 影响

  1. 背景介绍

最近发现 TDengine 企业用户及社区论坛用户中都有反馈服务器断电后导致 TDengine 无法启动的问题,服务器突然断电对 TDengine 影响有多大,这里做了个专业的测试, 让你能够了解到断电对 TDengine 的影响。

  1. 测试方案

在有大量数据写入及查询的情况下,制造异常,异常后启动 TAOSD 服务,检查 TAOSD 服务是否能够正常启动,并通过日志文件查找是否有损坏的文件及是否进行了修复行为。

异常主要分两大类:

1)非物理断电异常

  • 杀 taosd 进行(kill taosd)
  • 强杀 taosd 进行 (kill -9 taosd)
  • 操作系统重启(reboot 命令)
  • 点击关机按钮关机后再启动

2)物理断电异常

使用定时断点插座,每10 分钟掐断电源一次

  1. 测试数据及结论
  • 整体数据:

    分类 操作 实验次数 TAOSD 无法启动 是否有文件损坏 文件修复成功率
    非物理断电 强杀 taosd 进程 246 次 0 次 7 次 100%
    系统重启(reboot) 579 次 0 次 0 次 -
    物理断电 掐断电源 177 次 12 次 56 次 78%

    测试结论:

    1)物理断电是造成文件损坏及导致 TAOSD 无法启动的主要原因

    2)非物理断电造成的文件损坏基本都能自修复

    3)系统重启是一个有通知的退出行为,几乎不会造成文件损坏

  • 物理断电场景下文件损坏:

    序号 损坏文件类型 实验次数 损坏次数 损坏率 修复成功次数 修复成功率
    1 WAL 文件 177 35 20% 29 83%
    2 WAL meta-ver 文件 177 1 0.5% 0 0%
    3 VNODE 下 current.json 文件 177 5 2.8% 0 0%
    4 VNODE 下 .head .data .stt 文件 177 5 2.8% 2 40%
    5 ROCKDB 文件 177 3 1.6% 0 0%

    测试结论:

    1)文件损坏和写文件频次正相关,WAL 文件写频次最高,损坏也最高

    2)WAL 文件损坏修复率最高,剩下类型文件除 .head 与.data 可互修外,其它很难自修复

说明:

1)次数是指一次实验中或有多个文件损坏,仍计为一次

2)修复是指程序自动修复,非人工修复

  1. 无法启动解决方案

当有文件损坏时, TAOSD 是无法启动的,可分为以下几个场景解决:

  • 数据为价值重要数据:联系涛思技术人员尝试人工修复
  • 数据丢一些也能接受:尝试备份受损文件后删除
  • 数据是测试数据,可清空数据目录即可启动 TAOSD

TAOSD 无法启动后会在日志中记录损坏文件位置及名称,可确定损坏的是什么文件。

注意:通过删除受损文件的方式可能会导致一部分数据丢失的现象。

  1. 避免方案

导致文件损坏的主要原因是服务器突然断电,如果机房供电不稳,可通过成熟的 UPS 方案来保证,若没有这个条件,也可以通过购买带有服务器断电后可回写缓存数据的硬盘来解决。

  1. 总结
  • 非物理断电的软异常,如强杀 TDengine 服务、系统重启等,磁盘都有机会把缓存中数据落盘,所以造成文件损坏的概率不大,即使产生了,也是有预期内的不完整,能够自我修复好。
  • 物理断电,造成的影响会比较大,往往文件损坏的结果无预期,很多情况下无法自我修复,造成 TAOSD 服务无法启动。
  • 为了避免故障,建议尽可能提供稳定的机房电源,或增加 UPS 备用电源设备,也可以使用带断电保护的磁盘来减小故障的产生。

关于 TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

相关推荐
大树884 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz5 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工5 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
大鱼>5 小时前
大语言模型+物联网:LLM理解物理世界
物联网·struts·语言模型·多模态·aiot
果丁智能5 小时前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
酣大智6 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
麦聪聊数据6 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_6 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化