docker安装部署TDengine实现主从复制

引言

在物联网和大数据领域,时序数据库的重要性日益凸显。TDengine 作为一款高性能的开源时序数据库,以其出色的读写性能、低存储成本和便捷的集群管理能力,成为众多开发者的首选。本文将详细介绍如何通过 Docker 快速搭建 TDengine 集群,帮助你轻松实现数据的高效存储与管理。

准备工作

在开始部署之前,确保你的服务器满足以下条件:

  • 操作系统:支持 Docker 的 Linux 发行版(如 CentOS、Ubuntu 等)
  • Docker 已安装并正常运行
  • 服务器之间网络互通
  • 规划好主节点和从节点的 IP 地址

步骤一:主节点配置

  1. 在主节点创建TDengine所需文件夹

    mkdir /data/tdengine/config
    mkdir /data/tdengine/data
    mkdir /data/tdengine/log

  2. config文件夹下创建taos.cfg,并输入如下内容

    firstEp tdengine-node1:6030
    secondEp tdengine-node2:6030
    fqdn tdengine-node1
    serverPort 6030
    timezone Asia/Shanghai (CST, +0800)

  3. 在/data/tdengine目录下创建start-tdengine-node1.sh,并编辑脚本内容如下:

    docker run -d
    --hostname tdengine-node1
    --name tdengine-node1
    --privileged
    --network host
    -v /data/tdengine/data:/var/lib/taos
    -v /data/tdengine/logs:/var/log/taos
    -v /data/tdengine/config/taos.cfg:/etc/taos/taos.cfg
    --restart always
    tdengine/tdengine

  4. 编辑/etc/hosts文件

    主节点IP tdengine-node1
    从节点IP tdengine-node2

  5. 执行start-tdengine-node1.sh脚本

    sh start-tdengine-node1.sh

步骤二: 从节点配置

  1. 在从节点创建TDengine所需文件夹

    mkdir /data/tdengine/config
    mkdir /data/tdengine/data
    mkdir /data/tdengine/log

  2. config文件夹下创建taos.cfg,并输入如下内容

    firstEp tdengine-node1:6030
    secondEp tdengine-node2:6030
    fqdn tdengine-node2
    serverPort 6030
    timezone Asia/Shanghai (CST, +0800)

  3. 在/data/tdengine目录下创建start-tdengine-node1.sh,并编辑脚本内容如下:

    docker run -d
    --hostname tdengine-node2
    --name tdengine-node2
    --privileged
    --network host
    -v /data/tdengine/data:/var/lib/taos
    -v /data/tdengine/logs:/var/log/taos
    -v /data/tdengine/config/taos.cfg:/etc/taos/taos.cfg
    --restart always
    tdengine/tdengine

  4. 编辑/etc/hosts文件

    主节点ip tdengine-node1
    从节点ip tdengine-node2

  5. 执行start-tdengine-node1.sh脚本

    sh start-tdengine-node2.sh

步骤三:验证

  1. 登入主节点

    docker exec -it tdengine-node1 bash

    taos

  2. 添加节点

    create dnode "tdengine-node2:6030";

  • 查看节点信息

    常见问题及解决方法
    问题 1:从节点状态显示为 offline
    可能原因:
  • 网络问题,主从节点之间无法通信
  • 配置文件中 TAOS_CLUSTER_NAME、TAOS_FIRST_EP、TAOS_FQDN 等配置不一致或错误
  • TDengine 服务未正常启动

解决方法:

  • 检查主从节点之间的网络连通性,使用 ping 和 nc 命令测试端口是否可达
  • 仔细核对主从节点的配置文件和环境变量,确保配置一致且正确
  • 查看容器日志,确认 TDengine 服务是否正常启动,若未启动,根据日志错误提示进行修复

问题 2:创建数据库时出现 Invalid database options 错误

可能原因:

  • 设置的副本数超过集群中可用的数据节点数量
  • 数据保留策略、块大小等参数设置不合理

解决方法:

  • 确保副本数不超过数据节点数量
  • 检查创建数据库 SQL 语句中的参数设置,参考官方文档设置合理的参数值

总结

通过 Docker 部署 TDengine 集群,不仅简化了安装和配置过程,还能更好地实现资源隔离和管理。在实际应用中,你可以根据业务需求扩展集群节点数量,提升数据处理能力。希望本文能帮助你顺利完成 TDengine 集群的搭建,开启高效的数据管理之旅。如果在部署过程中遇到其他问题,欢迎在评论区留言交流!

相关推荐
螺蛳粉 螺蛳粉8 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg19 小时前
【Docker】镜像相关指令
运维·docker·容器
java_logo10 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频10 小时前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui
分布式存储与RustFS11 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
n1121211 小时前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
小白的码BUG之路12 小时前
K8s -- 搭建过程中经常遇到的问题
云原生·容器·kubernetes
慈云数据12 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
螺蛳粉 螺蛳粉12 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver
艾伦_耶格宇13 小时前
【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面
云原生·容器·kubernetes