【发布时间】:2020-05-07 17:57:27
【问题描述】:
我正在尝试在 Windows 上的 ElasticSearch 6.2.2 中备份索引,并在 Linux 上的 ElasticSearch 6.2.3 上恢复它。我正在采取以下步骤,但我从未在 linux 机器上看到快照(基于https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html):
在 Windows 上注册一个快照存储库
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "C:\\EsBackup",
"compress": true
}
}
在 Windows 上创建快照
PUT /_snapshot/my_backup/bcp?wait_for_completion=true
{
"indices":"myindex"
}
检查是否创建了快照
GET /_snapshot/my_backup/bcp
显示成功
{
"snapshots": [
{
"snapshot": "bcp",
"uuid": "xGLvw4JnRqadcyg4fxH1HA",
"version_id": 6020299,
"version": "6.2.2",
"indices": [
"bcp"
],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2018-05-10T16:48:22.970Z",
"start_time_in_millis": 1525970902970,
"end_time": "2018-05-10T16:48:36.816Z",
"end_time_in_millis": 1525970916816,
"duration_in_millis": 13846,
"failures": [],
"shards": {
"total": 3,
"failed": 0,
"successful": 3
}
}
]
}
我将文件复制到 linux 并检查文件的大小和数量是否相同。 (大约 200 个文件,大小为 500MB)。我将所有内容复制到一个文件夹~/elasticsearch-6.2.3/backup
初始化存储库
curl -X PUT "localhost:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d'{"type": "fs","settings": {"location": "~/elasticsearch-6.2.3/backup","compress": true}}'
并得到确认:{"acknowledged":true}
所以我检查了哪些快照可用
curl -X GET "localhost:9200/_snapshot/my_backup/_status"
但是列表是空的{"snapshots":[]}
并恢复
curl -X POST "localhost:9200/_snapshot/my_backup/bcp/_restore?pretty"
返回错误
{
"error" : {
"root_cause" : [
{
"type" : "snapshot_restore_exception",
"reason" : "[my_backup:bcp] snapshot does not exist"
}
],
"type" : "snapshot_restore_exception",
"reason" : "[my_backup:bcp] snapshot does not exist"
},
"status" : 500
}
我错过了什么步骤?我试图 _verify 存储库,它是有效的。版本 6.2.2 和 6.2.3 应该兼容。
【问题讨论】:
标签: elasticsearch restore