在ElasticSearch中如何从副本中恢复数据?

时间:2017-08-30 09:53:42

标签: elasticsearch nosql

已从节点删除文件夹(索引):/ data3 / data / es / esdartyprd / nodes / 0 / indices / enc_idx / 2 / index)

我可以看到此节点中的主分片错过了数据(node1)=> 对于这个索引,这里给出了命令curl -XGET http://localhost:9200/_cat/shards

enc_idx         2 p STARTED    57824815 28.8gb 10.135.8.201 HDPESPRD1
enc_idx         2 r STARTED    57824815 36.5gb 10.135.8.202 HDPESPRD2
enc_idx         2 r STARTED    57824815 36.5gb 10.135.10.15 HDPESPRA1
enc_idx         2 r STARTED    57824815 36.5gb 10.135.8.203 HDPESPRD3
enc_idx         2 r UNASSIGNED

你可以看到在master1中错过了数据!并且仍有问题将数据分配给node4

是否有可能从复制碎片中恢复或复制丢失的数据?这是自动完成的吗?分配未分配的分片的任何解决方案?在日志中,我发现文件从此文件夹中损坏的错误:

 [enc_idx][2] Corrupted index [corrupted_1ytPPpKkTZCGG_zQcbBG-w] caused by: CorruptIndexException[codec footer mismatch: actual footer=1063427 vs expected footer=-1071082520 (resource: NIOFSIndexInput(path="/data3/data/es/esdartyprd/nodes/0/indices/enc_idx/2/index/_3gv6_es090_0.pos"))]

1 个答案:

答案 0 :(得分:0)

执行以下操作 -

  • 关闭群集。
  • 通过设置HDPESPRD2
  • ,将节点node.master: true设置为主人
  • 重新启动集群中除节点HDPESPRD1和&之外的所有节点。 unassigned节点。

这将导致节点HDPESPRD2成为新的主节点。然后,您可以在清除其数据文件夹后重新加入其余节点。一旦加入群集,就会再次在其中创建新副本。