TDengine 服务无法启动常见原因

taosd 是 TDengine 的核心服务进程,如果无法启动将导致整个数据库无法使用,了解常导致无法启动的原因,可以帮你快速解决问题。

1. 如何查找日志

无法启动的原因记录在日志中,日志文件默认在 /var/log/taos 的 taosdlog.0 或者 tasdlog.1 文件,当前使用的是哪个看最后修改日期。

通常查看日志结尾为 ERROR 类日志即可快速查找出错误原因,可以使用以下脚本快速查找:

tail -n 1000 /var/log/taos/taosdlog.0 | grep ERROR

2. 常见原因

2.1 配置文件不正确

1. FQDN 不正确

现象:

示例在 taos.cfg 中的 fqdn 配置为一个不合法的名称: abcdef,启动 taosd 会失败,报如下错:

解决方法:

配置正确的 FQDN, 正确的 FQDN 必须是能 ping 通并显示的是预期 IP 地址。

配置 fqdn 在 linux 是在 /etc/hosts 中。

注意:

taos.cfg 中的 FQDN 只在 taosd 服务第一次启动时读取使用,启动成功后会保存 dataDir 指向的数据存储目录下的 dnode/dnode.json 文件中,下次再启动不再使用 taos.cfg 配置文件中,而会直接使用 dnode.json 中保存的 FQDN。

如果 dnode.json 已创建,若要修改 FQDN,需要 taos.cfg 及 dnode.json 两处都修改方可生效。

2. serverPort 不正确

示例在 taos.cfg 中的 serverPort 配置为一个超出范围的不合法端口:65539,启动 taosd 会失败,报如下错:

解决方法:

确保 serverPort 端口在指定范围内并且不被其它程序占用。

注意:

serverPort 端口修改同上面 FQDN 相同

3. dataDir 配置

dataDir 是配置数据库的存储目录,目录无访问权限或不可写会导致服务启动失败。

2.2 WAL 损坏

WAL 文件在数据写入过程中使用频繁,当突然断电再重启后最容易出现 WAL 损坏的现象。

现象:

解决方法:

把日志中提示损坏的 WAL 文件移出当前目录并备份到一个安全的地方,重新启动 taosd 即可。

WAL 中记录着已落或未落盘的数据,移除 WAL 后可能会导致部分数据丢失。

如果数据非常重要,联系涛思数据技术人员尝试修复损坏的 WAL 文件,但数据不一定能修复回来。

2.3 数据版本不兼容,如降版本操作

版本升级,老版本数据可以在新版本中完全兼容,但新版本数据在老版本中有可能会无法识别,以下是降版本后导致的 taosd 无法启动的现象:

现象:

上面的报错仅是其中一种,数据不兼容可能会报各种错误,识别的方式即看是否有降版本操作。

解决方法:

卸载老版本,再安装回原来版本即可。

2.4 端口被占用

taosd 启动过程中,taos.cfg 中的 serverPort 端口被其它程序占用后,会导致启动失败。

现象:

如下是指定的 serverPort 为 9100 的端口被其它应用占用:

解决方法:

更换其它未使用的端口或停止占用端口的应用均可解决

2.5 dataDir 损坏

在突然断电或关机的情况下,可能会导致正在写入数据损坏,再启动 taosd 服务时,会遇到无法启动的现象

现象:

以下示例是数据文件 v2f1736ver3.data 丢失,导致 taosd 无法启动

解决方法:

如果数据非常重要,联系涛思数据技术人员尝试修复损坏的文件。

如果只是测试数据,仅想把 taosd 启动起来,可以根据报错的文件,删除报错文件所在 vnode 目录下的 tsdb 目录即可。如上例中,删除 /var/lib/taos/vnode/vnode2/tsdb 目录,即可重新启动 taosd。

2.6 磁盘空间不足

TDengine 当存放数据磁盘空间小于 2G 时,会拒绝写入请求并告警磁盘空间不足,此时 taosd 服务仍然可以正常启动和工作,当磁盘空间继续减小,全部被占满后,taosd 服务将无法再启动。

现象:

解决方法:

清理出磁盘空间或增加磁盘

2.7 已有实例运行

taosd 服务是单进程工作模式,一台机器上只允许运行一个实例,如果前面已有实例在运行,再启动新实例会报启动失败错误,提示日志为尝试多次锁定 .running 失败,如下:

现象:

解决方法:

ps aux | grep taosd 查看具体占用实例进程,KILLL 后再启动即可

2.8 正在数据同步

启动 taosd 后,日志长时间显示进行 restore ,无法进入服务状态。

这个现象一般出现在集群中,当集群中某个节点上的 taosd 服务停止了一段时间,集群正在大量写入数据中,再启动已停止的节点时会出现此现象。

原因是在做数据同步,停止节点上的数据和正在运行集群中的数据有了一段差距,需要更新到与集群数据相同才可接入集群。

当需要同步数据比较多时,启动时间就会比较长,日志如下:

现象:

解决方法:

  1. 等待,等到与集群数据同步后即会进入服务状态

  2. 如果集群仍在大量数据写入,可以暂停集群数据写入,让落后节点尽快赶上来,再启动集群数据写入。

2.9不支持的平台

TDengine 服务端支持平台列表如下, 非列表中的平台,服务启动会报 0x8000013A 错误,表示不支持此平台。

|----------------|-----------|-------|-----|
| 版本 | X64 64bit | ARM64 | |
| CentOS | 7.9 以上 | ● | ● |
| Ubuntu | 18 以上 | ● | ● |
| RedHat | RHEL 7 以上 | ● | ● |
| Debian | 6.0 以上 | ● | ● |
| FreeBSD | 12 以上 | ● | ● |
| OpenSUSE | 全部版本 | ● | ● |
| SUSE Linux | 11 以上 | ● | ● |
| Fedora | 21 以上 | ● | ● |
| Windows Server | 2016 以上 | ●/E | |
| Windows | 10月11日 | ●/E | |
| 银河麒麟 | V10 以上 | ●/E | ●/E |
| 中标麒麟 | V7.0 以上 | ●/E | ●/E |
| 统信 UOS | V20 以上 | ●/E | |
| 凝思磐石 | V8.0 以上 | ●/E | |
| 华为欧拉 openEuler | V20.03 以上 | ●/E | |
| 龙蜥 Anolis OS | V8.6 以上 | ●/E | |
| macOS | 11.0 以上 | | ● |

注:

  1. ● 表示经过官方测试验证, ○ 表示非官方测试验证,E 表示仅企业版支持。

  2. 社区版仅支持主流操作系统的较新版本,包括 Ubuntu 18+/CentOS 7+/CentOS Stream/RedHat/Debian/CoreOS/FreeBSD/OpenSUSE/SUSE Linux/Fedora/macOS 等。

访问官网

更多内容欢迎访问 TDengine 官网

相关推荐
大大大大晴天17 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库4 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟4 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人4 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长4 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人4 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城4 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark