TDengine 社区问题双周精选 | 第二期

Hi,TDengine database 的用户朋友们,为防止过多的共性问题困扰大家,方便大家学习、吸收经验,我们会对近期社区内用户遇到的共性问题进行精选、汇总,给大家分享。 这是此专栏的第二期内容,将为大家分享如下几个常见问题:

一. 如何以最快的速度排查连接问题?(包含连接器)

首先需要明确几点:

1. 在网络可以互通的情况下,不论是客户端还是连接器,所有对数据库的连接问题基本都属于配置问题;

2. 遇到连接器连接问题后,请第一时间先排查 TDengine 客户端是否可以正常工作(具体确认方式为确保客户端可以顺利查询每个数据库服务端的子表);

3. 连接问题具体的错误表现主要为:

1) “Unable to establish connection”;

2) “Unable to resolve FQDN”;

接下来是具体排查方法:

1. 在服务端运行 taosd | grep -i fqdn ,或者 cat 数据文件目录(默认为/var/lib/taos)/dnode/dnodeEps.json | grep -i fqdn,获取输出的 fqdn 参数值。

2. 在客户端服务器的 hosts 文件中,检查自己是否有把正确的 fqdn 参数值和数据库服务端 ip 写上。

3. 如果步骤 1 的输出结果是 localhost,客户端在发起连接解析的时候就会连到自己 127.0.0.1 从而出现连接失败,所以这时候,需要通过 taos.cfg(默认路径 /etc/taos)把服务端的 fqdn 参数值修改成其他值,然后在数据文件目录(默认为/var/lib/taos)/dnode/dnodeEps.json 下同步更新 dnodeFqdn 的值,然后重启数据库服务加载新的配置,回到步骤 1。

如果步骤 1 的输出结果并非 localhost,继续步骤4。

4. 客户端重新发起连接。

5. 如果连接依然有问题,请注意检查防火墙的端口规则,云服务器还要注意安全组的规则。

6. 若充分尝试后仍不能解决,请在 gitHub 或微信群中反馈,会由官方工作人员协助处理。

二. 2.0 版本 TDengine 如何做不同机器之间的数据迁移?

1. 先登录旧的数据库服务,show dnodes 记录下各个 dnode 的 ID 对应的 End Point 及 IP;

2. 规划好新的数据库服务各节点的 fqdn 及 IP 地址,以及与旧系统各节点的对应关系;

3. 将旧系统各节点的数据文件复制到新系统对应的节点的数据文件目录下;

4. 将旧系统各节点的 taos.cfg 复制到新系统对应的各节点,并做好相应修改:firstEP/fqdn/dataDir/logDir 等等;

5. 编辑新系统各节点数据文件夹里 dnodeEps.json,将其中的 dnodeFqdn 修改为新系统现有的 fqdn 参数值,dnodePort 修改为新系统现有的 serverPort 参数值(总之,要确保该文件的各项配置与我们在 taos.cfg 中实际配置保持一致);

6. 启动新系统,迁移完毕;

三. 如何修改数据文件目录 dataDir?

1. 停止数据库服务;

2. 修改 taos.cfg 下的 dataDir 值为我们需要的新目录路径;

3. 把原有的数据文件全部移动到新的目录下面,确保在新的 dataDir 下,能看到之前的 dnode,mnode,vnode,vnode_bak;

4. 再次启动服务;

四. vnode_bak 目录有什么用?

数据文件目录下的 vnode_bak 是存储数据库已经删掉的库的数据文件的,如果误删除了数据库,可以联系我们企业版团队提供数据恢复服务。

五. 哪些参数需要重启生效?哪些参数可以热更?

https://docs.taosdata.com/operation/optimize:这里可以看到数据库级别参数的具体描述。

https://docs.taosdata.com/taos-sql/database这里可以看到可以热更的参数的操作细节。

对于数据库服务级别的参数,统一在 taos.cfg 中修改,修改后需要重启数据库服务后生效。注意:在 taos.cfg 当中,与数据库级别参数重合的部分参数,仅代表新建库的该参数的默认值。