如何将弹性数据从一台服务器传输到另一台服务器
Posted
技术标签:
【中文标题】如何将弹性数据从一台服务器传输到另一台服务器【英文标题】:how to transfer elastic data from one server to another 【发布时间】:2015-04-09 19:40:47 【问题描述】:如何将 Elasticsearch 数据从一台服务器移动到另一台服务器?
我的服务器 A 在一个具有多个索引的本地节点上运行 Elasticsearch 1.4.2。我想将该数据复制到运行具有相同版本的 Elasticsearch 的服务器 B。两台服务器上的 lucene_version 也是相同的。但是当我将所有文件复制到服务器 B 时,数据没有迁移,它只显示所有节点的映射。我在本地计算机上尝试了相同的程序,并且效果很好。我在服务器端遗漏了什么吗?
【问题讨论】:
【参考方案1】:这可以通过多种方式实现。更简单、最安全的方法是在新节点上创建副本。可以通过分配相同的集群名称在新服务器上启动新节点来创建副本。 (如果您更改了其他网络配置,那么您可能也需要更改)。如果您之前已经初始化了没有副本的索引,那么您可以使用update settings api在线更改副本数
在您的数据同步之前,您的集群将处于黄色状态。正常操作不会受到影响。 一旦您的集群状态为绿色,您就可以关闭您不希望拥有的服务器。在此阶段,您的集群阶段将再次变为黄色。您可以使用更新设置将副本计数更改为 0 / 添加其他节点以使集群状态变为绿色状态。
仅当您的两台服务器位于同一网络上时才建议使用此方式,否则数据同步将花费大量时间。
另一种方法是使用snapshot。您可以在旧服务器上创建快照。将快照文件从旧服务器复制到同一位置的新服务器。在新服务器上,在同一位置创建相同的快照。您将找到您复制的快照文件。您可以使用它来恢复它。使用命令行执行此操作可能有点麻烦。您可以使用像kopf 这样的插件,这将使拍摄快照和恢复就像单击按钮一样简单。
【讨论】:
有没有办法可以直接将我的 0 文件夹转储到新服务器并获取所有数据。这在我的本地服务器上是如何工作的,而在新服务器上却不工作? 复制整个数据文件夹也应该可以。为此,您需要停止两台服务器。确保新服务器在配置中具有相同的集群名称。检查新服务器的集群日志以了解可能的恢复问题。 我已正确执行所有步骤集群名称,lucene_version和版本与其他服务器相同,放入数据后我可以看到映射但看不到数据。 在启动新服务器的时候能把看到的日志放在cluster.log里吗? 在哪里可以找到 cluster.log以上是关于如何将弹性数据从一台服务器传输到另一台服务器的主要内容,如果未能解决你的问题,请参考以下文章
使用 rpc、http 或 websockets,这对于从一台服务器到另一台服务器重复传输许多小块数据来说是最快的