大多数ElasticSearch文档都讨论了如何通过REST API使用索引 - 我有什么理由不能从磁盘中移动或删除索引文件夹吗?
答案 0 :(得分:6)
您可以将磁盘上的数据移动到某一点 -
如果Elasticsearch正在运行,移动或删除索引绝不是一个好主意
文件夹,因为Elasticsearch不会知道数据发生了什么,而你
将在日志和索引中获得各种FileNotFoundExceptions
在你手动删除它们之前是红色的。
如果Elasticsearch未运行,您可以将索引文件夹移动到另一个节点(for 例如,如果你永久地淘汰一个节点并且需要得到它 但是,如果删除或将文件夹移动到某个地方,则数据关闭) 重新启动服务时Elasticsearch无法看到它,然后是Elasticsearch 会不高兴的。这是因为Elasticsearch编写了所谓的 群集状态到磁盘,并在此群集状态中记录索引,因此,如果 ES启动并期望找到索引“foo”,但你已经删除了“foo” 索引目录,索引将保持红色状态,直到它被删除 REST API。
因此,如果您想移动或删除个人,我建议您这样做 从磁盘索引文件夹,尽可能使用REST API,因为它是 如果删除它所期望的文件夹,可能会使ES进入不愉快状态 在。中找到索引。
编辑:我应该提一下,复制(备份)一个索引文件夹是安全的, 从Elasticsearch的角度来看,因为它不会修改内容 文件夹。有时人们这样做是为了在快照之外执行备份 &安培;恢复API。
答案 1 :(得分:5)
我使用这个程序:我关闭,备份,然后删除索引。
curl -XPOST "http://127.0.0.1:9200/*index_name*/_close"
在此之后,所有索引数据都在磁盘上并处于一致状态,并且不可能进行写入。我复制存储索引的目录,然后将其删除:
curl -XPOST "http://127.0.0.1:9200/*index_name*/_delete"
通过关闭索引,elasticsearch将停止对索引的所有访问。然后我发送命令删除索引(以及磁盘上的所有相应文件)。