问题
问题1:如果 IoTDB 配置的时候用的 IP,没有用 hostname,后面 IP 修改了,历史数据需要重新导吗?
问题2:如果现场运行 IoTDB 半年,电脑 IP 要改的话,半年的数据要导出来再导入么?
问题3:有个关于 IoTDB 3C3D 集群,IP 地址更改的问题请教下。目前我们这儿 3C3D 集群,需要进行 IP 地址变更,之前配置文件里面,没有采用 hostname 模型,采用的是 IP 地址参数配置,请问服务器如果 IP 进行了变更,需要针对 IoTDB 集群进行如何调整,才能保证数据的完整性?
问题4:有一个关于 IoTDB 1.3.1 的 TsFile load 问题需要请教下:
- 【问题场景】:原先采用 3C3D 配置的 IoTDB 集群,config 文件中没有采用 hostname 配置方式,采用的 IP 地址配置,但由于机器 IP 发生了变更,现需要进行 IoTDB 数据 TsFile 重新 load,以加载改 IP 之前录入 IoTDB 的数据。
- 【问题描述】:目前将 3 台服务器的老数据 data 文件夹,移动到了其他目录:/opt 目录下,目前需要加载 TsFile,是否直接全量加载 sequence 目录下的所有 TsFile 即可?还是说 snapshot 及其他目录的 TsFile,也需要进行 load?但是 snapshot 目录下 sequence 和 unsequence 目录下都有 TsFile,我该选哪个进行 load 才能全量保留之前的数据?
问题5:请问下,3 节点的集群,将原先的 IP 地址参数改成了主机名字。现在往 IoTDB 中写数据时,session 还是通过 IP 来的,但是 IP 有的时候会去解析其他节点的主机名,发现解析不了而报错。请问这种情况该如何解决?
问题6:刚开始电脑部署的 IoTDB 数据库以 127.0 IP 运行,现在想改为以 hostname 运行、因为不能改配置中的 IP,历史数据我可以不要,所以我重新下载了 1.3.0 版本,配置为 hostname 运行成功,但 CLI 连不上,什么原因呢?这样建立新的文件夹,重启新数据库做法可行吗?
方案
- 集群部署前的准备:推荐使用合适的 hostname,具体原因可参考《为什么推荐将 IoTDB 服务地址配置为 HostName 而非 IP?》。
- 集群部署后,IP 地址改变的处理
-
需要旧集群数据的情况:
-
搭建并配置新集群:新集群之间需要在每台主机的 /etc/hosts 文件中配置 IP 地址和对应主机名的关系,以确保它们能够相互识别(注意,hostname 必须唯一),之后可以启动新集群。
-
迁移老集群数据到新集群:可以通过 pipe 同步全量数据,直接将老集群的 data/ 目录(包括 sequence 和 unsequence)加载到新集群中。
-
不需要旧集群数据的情况:
-
停止旧集群。
-
删除旧集群的 data 目录和 logs 目录。
-
修改新集群及其所在主机的 host 配置。
-
启动新集群。
- 集群迁移后,客户端连接更新
-
在 CLI 连接时,需加上 -h hostname 参数。
-
对于使用 session 或 sessionPool 的客户端,建议也更新为对应的主机名(hosts)。