gpt4 book ai didi

elasticsearch - 如何将Elasticsearch数据复制到新服务器?

转载 作者:行者123 更新时间:2023-12-03 00:47:32 28 4
gpt4 key购买 nike

我在新服务器上安装了Elasticsearch。我有一个称为指标的索引,可以推送应用程序中的自定义指标。我要做的是将旧服务器中的指标添加到该索引中。

我试图像这样在旧服务器上使用elasticdump:elasticdump --input=http://oldserver:9200/metrics --output=metrics_dump.json --type=data,但是在将大约1,000,000个条目添加到文件后,出现错误(指标在旧服务器上大约有10,000,000个条目)。
所以我想使用滚动并分批保存条目:elasticdump --input=http://oldserver:9200/metrics --output=metrics_dump_1.json --type=data --searchBody='{ "sort": ["_doc"], "query": { "match_all": {} }, "size": 100000 }但这不起作用。 100,000个标记之后,条目将不断写入文件。另外,在检查输出文件的第一行时,我没有看到scroll_id,因此我怀疑searchBody参数被忽略了。

我可以通过任何其他方式移动此数据吗?我不必从新服务器指标中丢失任何新条目。

最佳答案

您有几种选择。如果您可以在旧服务器中停止elasticsearch,则只需停止它并复制数据目录即可。那将复制所有内容。

如果没有,则可以使用snapshots。制作快照并在新服务器中还原数据。您可以指定要备份和/或还原的索引。制作快照的示例:

PUT /_snapshot/my_backup/snapshot_2?wait_for_completion=true
{
"indices": "index_1,index_2",
"ignore_unavailable": true,
"include_global_state": false,
"metadata": {
"taken_by": "kimchy",
"taken_because": "backup before upgrading"
}
}

还原快照的示例(将快照文件夹复制到新服务器后):
POST /_snapshot/my_backup/snapshot_1/_restore

除非已经配置了任何快照文件夹,否则您将不得不重新配置并重新启动elasticsearch。

第三种选择是使用远程服务器使用 reindex复制数据。
POST _reindex
{
"source": {
"remote": {
"host": "http://otherhost:9200",
"username": "user",
"password": "pass"
},
"index": "source",
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "dest"
}
}

此第三个选项应在不重新启动elasticsearch的情况下工作。

关于elasticsearch - 如何将Elasticsearch数据复制到新服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58342558/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com