如何将Elasticsearch数据从一台服务器移动到另一台服务器?
我在一个具有多个索引的本地节点上运行Elasticsearch 1.4.2的服务器A.我想将该数据复制到运行Elasticsearch且具有相同版本的服务器B. lucene_version在两台服务器上也是相同的。但是当我将所有文件复制到服务器B时,不会迁移数据,它只显示所有节点的映射。我在我的本地计算机上尝试了相同的程序,它运行得很好。我在服务器端遗漏了什么吗?
答案 0 :(得分:3)
这可以通过多种方式实现。更简单,最安全的方法是在新节点上创建副本。可以通过分配相同的群集名称在新服务器上启动新节点来创建副本。 (如果您更改了其他网络配置,那么您可能还需要更改它)。如果您之前已初始化了没有副本的索引,则可以使用update settings api
更改联机副本的数量在您的数据同步之前,您的群集将处于黄色状态。正常操作不会受到影响。 一旦您的群集状态为绿色,您可以关闭您不希望拥有的服务器。在此阶段,您的群集阶段将再次变为黄色。您可以使用更新设置将副本计数更改为0 /添加其他节点以使群集状态处于绿色状态。
仅当您的服务器位于同一网络上时才建议采用这种方式,否则数据同步将花费大量时间。
另一种方法是使用snapshot。您可以在旧服务器上创建快照。将快照文件从旧服务器复制到同一位置的新服务器。在新服务器上,在同一位置创建相同的快照。您将找到您复制的快照文件。您可以使用它恢复它。使用命令行执行它可能有点麻烦。您可以使用像kopf这样的插件,它可以使快照和恢复像按钮一样简单。