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 官网

相关推荐
梦想三三10 小时前
矿物智能识别项目实战(一):从零开始清洗工业矿物数据
大数据·人工智能·数据挖掘
2401_8322981010 小时前
适配工业互联网场景,OpenClaw落地工厂智能运维,加速工业4.0无人化转型
大数据·人工智能
标书畅畅行10 小时前
深度解析钛投标AI标书工具:全流程企业级AI投标解决方案,重构投标数字化生产力
大数据·数据库·人工智能
Hello:CodeWorld10 小时前
AI Agent:从核心原理、架构框架到工程实战,大模型时代的自主智能革命
大数据·人工智能·python·架构
DolphinScheduler社区10 小时前
Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
大数据·云原生·serverless·apache·海豚调度·版本发版
ITxiaobing202310 小时前
Neel Somani 解读加州 AB 205 能源可靠性框架的长期市场影响
大数据·人工智能·能源
大大大大晴天10 小时前
Hudi技术内幕:Query Types全解析
大数据
SeaTunnel10 小时前
87 个 PR 迭代复盘|Apache SeaTunnel 5 月版本重点更新解读
大数据·数据库·开源·apache·seatunnel
薛定猫AI10 小时前
【深度解析】ChatGPT vs Claude vs Gemini:2026年AI大模型选型全景对比
大数据·网络·人工智能
safium10 小时前
停车设备 OEM 供应商选型:从硬件到运营能力的综合考量
大数据·人工智能