TDengine Database的taosmigrate工具支持taosd的数据文件可以迁移到不同的机器上运行。下面以一个集群场景描述taosmigrate工具的使用方法。
一、首先,登录要迁移的集群,执行show dnodes获取所有的dnode id。
taos> show dnodes;
id | end_point | vnodes | cores | status | role | create_time |
==============================================================================
1 | node1:6030 | 0 | 2 | ready | mnode | 2020-09-14 16:33:14.610 |
2 | node2:6030 | 1 | 2 | ready | vnode | 2020-09-14 16:33:19.796 |
3 | node3:6030 | 1 | 2 | ready | vnode | 2020-09-14 16:33:20.397 |
Query OK, 3 row(s) in set (0.002770s)
二、停止集群的所有节点。
三、规划集群中各个节点迁移到新的环境中的节点的fqdn和端口。比如 id=1的dnode迁移到新的节点为 new.node1:7100;id=2的dnode迁移到新的节点为new.node2:7200;id=3的dnode迁移到新的节点为new.node3:7200。
四、将各个dnode的数据文件夹拷贝到对应的新环境的节点上,且目录必须是配置文件中的dataDir设置的目录。如果没有配置,则是缺省的/var/lib/taos。
五、在新环境的各个节点上,分别执行taosmigrae,完成dnode中 id 与 fqdn:port的修改。
mason@VirtualBox ~/git/tools $ ./taosmigrate -r ~/test/dnode1/data/ -g "1 new.node1:7100, 2 new.node2:7200, 3 new.node3:7300"
六、然后启动所有节点。
集群应该在新环境下,正常运行起来!
taosmigrate命令参数说明:
mason@VirtualBox ~/git/tools $ ./taosmigrate --help
Usage: taosmigrate [OPTION...]
-r data dir data dir
-d dnodeId dnode id
-f fqdn dnode fqdn
-p port dnode port
-g multi dnodes multi dnode info, e.g. "2 7030 fqdn1, 3 8030 fqdn2"
-?, --help Give this help list
--usage Give a short usage message
-r: 数据库文件所在的目录;
-d:迁移前节点的dnode id,通过taos shell上执行 show dnodes获取;
-f:dnode id对应的新节点中的fqdn;
-p:dnode id对应的新节点中的端口号;
-g:对于集群中的节点,可以同时指定新环境中各个节点的fqdn和port;
对于单节点,直接使用-d、 -f、 -p,就可以了,对于集群,直接使用-g,一次将所有节点信息都修改完成。
注:目前只有企业版包含该工具。