TDengine 集群部署及启动、扩容、缩容常见问题与解决方案

一、部署阶段常见问题及解决方案

1. docker entrypoint.sh 相关 bug
问题描述 :在特定 docker-compose.yaml 文件下无法自动建立集群,原因是 Docker 镜像 entrypoint 文件 /usr/bin/entrypoint.sh 执行代码无法抓取出 FIRST_EP 信息(TDengine 3.3.6.3 版本)。
解决方案 :需检查 taosd -C 执行结果是否正常获取 FIRST_EP,并确保 taos.cfgfirstEp 配置项正确指向集群首个节点的 fqdn:port,必要时手动调整脚本逻辑以正确解析 FIRST_EP

2. 本地执行 taos 报错
问题描述 :本地执行 taos 客户端时报错,预估是 epSet 中的 EP 的 fqdn 在本地无法解析。
解决方案

  • 确保所有节点(包括客户端)的 /etc/hosts 文件或 DNS 服务已正确配置集群所有节点的 fqdn 与 IP 映射;
  • 避免使用 localhost 或 IP 地址作为 fqdn(开发环境除外),建议使用统一网段内可解析的完整域名;
  • 若为 Docker 环境,可通过 docker exec -it <容器名> bash 进入容器执行 taos 命令,确保网络互通。

3. 奇怪的 SQL 报错(时间戳列无序)
问题描述 :执行含 JOIN 条件的 SQL 时报错,原因为 TDengine 要求 JOIN 条件的时间戳列必须有序。
解决方案 :在 SQL 语句中添加 ORDER BY ts 确保时间戳列有序。

4. 单机部署内存不足
问题描述 :单机部署集群时,查询因内存不足报错。原因是每个节点默认预留 20% 内存(3 节点集群需预留 60%),导致单机资源紧张。
解决方案 :通过修改 taos.cfg 中的 minAvailableMemmaxSessions 参数调整内存预留策略,降低单机资源占用。

5. 安装后连接报错(Unable to resolve FQDN)
问题描述 :客户端连接 TDengine 时提示无法解析 FQDN。
解决方案

  • 服务端:每个节点执行 hostname -f 获取完整域名,配置到 taos.cfgfqdn 参数;
  • 客户端 / 其他节点:通过 hosts 文件或 DNS 服务配置所有集群节点(含仲裁节点)的 fqdn 与 IP 映射;
  • 避免使用 localhost 或 IP 地址作为 fqdn(仅开发环境允许)。

6. taosd 启动异常(宕机恢复、Vnode 失败、crash)
问题描述 :节点宕机恢复后内存占用过高、Vnode 恢复失败或启动时因磁盘满导致 crash。
解决方案

  • 检查磁盘空间(df -h),清理 /var/lib/taosdataDir 目录冗余文件;
  • 若 Vnode 恢复失败,查看 taosd 日志(默认路径 /var/log/taos/taosd.log)定位具体错误;
  • 内存过高时,调整 taos.cfgmaxSessionscacheBlockSize 限制会话和缓存大小。

7. 集群连接验证失败(show cluster alive 失败)
问题描述 :执行 show cluster alive 提示连接失败或集群组建失败。
解决方案 :检查以下配置:

  • 端口:确保所有节点开放 6030-6042(TCP/UDP);
  • 网络:各节点间 ping fqdn 需通;
  • 时钟:节点间时间差不超过 1 秒(通过 ntp 同步);
  • 配置:taos.cfgstatusInterval(状态上报间隔)、timezone(时区)等参数需一致

二、扩容阶段常见问题及解决方案

1. 新节点加入后状态为 Offline
问题描述 :执行 CREATE DNODE '<fqdn:port>' 后,新节点在 SHOW DNODES 中显示 Offline
解决方案

  • 检查节点状态 :确认新节点 taosd 已启动(systemctl status taosd)、防火墙关闭(ufw disablefirewall-cmd --add-port=6030-6042/tcp --permanent);
  • 清理数据目录 :若节点曾部署过 TDengine,需清空 /var/lib/taos 目录(rm -rf /var/lib/taos/*);
  • 验证域名解析 :所有节点(含新节点)的 /etc/hosts 或 DNS 需包含所有集群节点(含仲裁节点)的 fqdn 与 IP 映射;
  • 检查配置参数 :新节点 taos.cfgfirstEp 需指向集群已有节点的 fqdn:portfqdn 需为自身完整域名。

三、缩容阶段常见问题及解决方案

1. 缩容操作不生效或数据丢失
问题描述 :直接停止 taosd 进程无法完成缩容,或缩容后数据未迁移导致丢失。
解决方案

  • 规范缩容步骤
    1. 执行 SHOW DNODES 确认待删除节点状态为 Ready
    2. 执行 DROP DNODE '<fqdn:port>'DROP DNODE <dnode_id>
    3. 等待集群自动迁移该节点数据(时间取决于数据量及网络 / 磁盘性能);
    4. 数据迁移完成后,执行 SHOW DNODES 确认节点已移除;
    5. 停止该节点 taosd 服务(systemctl stop taosd)。
  • 注意事项
    • 缩容前确保剩余节点数 ≥ 副本数(如三副本集群至少保留 2 节点);
    • 缩容后节点若需重新加入集群,需清空 /var/lib/taos 目录、重新配置 taos.cfg,并执行 CREATE DNODE 重新加入。

四、总结

TDengine 集群部署、扩容、缩容的核心在于 网络配置(FQDN 解析、端口互通)参数一致性(firstEpfqdn、时区等)操作规范性(数据迁移、节点状态检查) 。遇到问题时,优先通过日志(/var/log/taos)和 SHOW DNODES 等命令定位。

相关推荐
安审若无18 小时前
Oracle 打补丁指南
数据库·oracle
智海观潮19 小时前
JVM垃圾回收器、内存分配与回收策略
java·大数据·jvm
樱花的浪漫19 小时前
Cuda reduce算子实现与优化
数据库·人工智能·深度学习·神经网络·机器学习·自然语言处理
啊森要自信19 小时前
【MySQL 数据库】MySQL用户管理
android·c语言·开发语言·数据库·mysql
小莞尔19 小时前
【51单片机】【protues仿真】基于51单片机火灾报警控制系统
c语言·单片机·嵌入式硬件·物联网·51单片机
kkkkk02110619 小时前
Redis八股
数据库·redis·缓存
B站_计算机毕业设计之家19 小时前
机器学习:基于大数据的基金数据分析可视化系统 股票数据 金融数据 股价 Django框架 大数据技术(源码) ✅
大数据·python·金融·数据分析·股票·etf·基金
墨香幽梦客20 小时前
塑胶制造生产ERP:有哪些系统值得关注
大数据·人工智能·制造
cliproxydaili20 小时前
IP 汇总名单
大数据·网络
北京耐用通信20 小时前
打破协议壁垒:耐达讯自动化Modbus转Profinet网关实现光伏逆变器全数据采集
运维·人工智能·物联网·网络安全·自动化·信息与通信