Docker单机切集群启动失败

【TDengine 使用环境】
测试

【TDengine 版本】
3.3.2.0

【操作系统以及版本】
Kylin Linux Advanced Server V10

【部署方式】容器/非容器部署
容器

【集群节点数】

【集群副本数】

【描述业务影响】
原来有一个单机的taos服务,一直在使用,上面已经有将近一年的数据,现在要改部署集群,高可用并保证数据不丢。

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】
我把原来单机的修改成集群配置会启动失败,看日志像是初始化数据库失败了,我是docker部署。explorer.toml
taosadapter.toml
taos.cfg
taoskeeper.toml
这几个配置文件中用到buildkitsandbox的都改成了集群的hostname

【资源配置】

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)

看你的问题描述,是原来有一台单机运行的taosd,现在改成集群模式后,启动失败。

这个启动失败,首先要检查你的taos.cfg配置是否正确,尤其是firstEp要指向同一个节点。

看你的日志,贴出来的是taosadapter的日志。请把集群的所有的taos.cfg配置文件贴出来看看。

节点1:
server204主节点(原来单机,数据都在这上面)



节点2:
server205
还未启动,想等server204节点启动成功后,在启动server205加入集群中

麻烦帮忙看看

你第二个节点配置错了。
第二个节点的firstEp 也要配成server204:6030

好的,我一会改下

不过现在是server204(单机 切 集群,这个服务启动不了)数据都在这上面

下面几个步骤

  1. 在安装目录下,执行 ./start-all.sh
  2. systemctl status taosd, 看看taosd是否启动
  3. 如果没有启动,请把/var/taos/log/taosdlog.0的日志给我们看看

是使用docker部署的,我下载容器启动日志给你们吧

怎么给你日志文件

通过网盘分享的文件:日志
链接: 百度网盘 请输入提取码 提取码: k9uu


docker启动脚本
docker run -d
-v /home/data/tdengine-cluster/data:/var/lib/taos
-v /home/data/tdengine-cluster/log:/var/log/taos
-v /home/data/tdengine-cluster/config:/etc/taos
–network host
–name tdengine-cluster
–restart=always
–privileged
tdengine/tdengine:3.3.2.0

日志提供了,麻烦帮看看什么问题哈

04/09 06:55:33.880599 00000035 C DND ERROR dnode:1, localEp server204:6030 different from buildkitsandbox:6030
04/09 06:55:33.880603 00000035 C DND ERROR localEp server204:6030 different with /var/lib/taos//dnode/dnode.json and need to be reconfigured
04/09 06:55:33.880665 00000035 C DND ERROR failed to read file since Invalid config option
04/09 06:55:33.880680 00000035 C DND ERROR failed to create dnode since Invalid config option
04/09 06:55:33.880683 00000035 C DND ERROR failed to init dnode since Invalid config option

这个错误是因为容器的 hostname 和你之前运行 TDengine 时保存的配置不一致导致的。

TDengine 在第一次启动时,会读取容器的 hostname 作为自己的节点ID(Endpoint)并保存下来。当你重启容器时,如果容器的 hostname 变了(例如由buildkitsandbox 变成了server204 ),程序发现不匹配,就会拒绝启动,以避免数据损坏。

可以尝试通过以下方案解决:
在启动容器时,直接通过环境变量告诉 TDengine 它应该叫什么名字。这样即使容器重启,配置也不会乱。

bash
docker run -d
–name tdengine
–network host \ # 推荐使用host网络
-e TAOS_FQDN=“server204” \ # 告诉TDengine它的名字是server204
-e TAOS_FIRST_EP=“server204:6030” \ # 指定集群首个节点的地址
–restart always
tdengine/tdengine:3.3.2.0

处理好了,是因为./data/dnode目录下的dnode.json文件在第一次初始化时已经有个buildkitsandbox配置在里面了,改了下dnode.json配置,改成server204可以了

还有个问题想咨询下,现在集群部署切好了,数据库是否有什么配置需要修改以达到高可用。
上次你们同事说需要执行alter database cq_test replica 2;但是我一直执行失败
image

社区版本不支持副本数从1变成2,可以支持从1变成3