从 s3 存储库恢复时快照不存在错误
Snapshot does not exist error on restoring from s3 repository
我刚刚在 s3 存储库上创建了一个小型索引的快照。现在我试图恢复它,它说找不到快照。
我创建的快照来自 elasticearch 2.3,我正在尝试在 elasticsearch 5.1.1 上恢复。是否有一些我不知道的兼容性问题?
2017-02-01T01:38:32,669][INFO ][o.e.r.RepositoriesService] [development] update repository [elasticsearch]
[2017-02-01T01:38:33,552][WARN ][o.e.s.RestoreService ] [development] [elasticsearch:backupname.17-01-31-1024] failed to restore snapshot
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[2017-02-01T01:38:33,552][WARN ][r.suppressed ] path: /_snapshot/elasticsearch/backupname.17-01-31-1024/_restore, params: {repository=elasticsearch, wait_for_completion=true, snapshot=backupname.17-01-31-1024}
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
此外,我在 ES 2.3 上恢复相同快照时没有收到错误消息
我使用 GET /_snapshot/elasticsearch/_all api 检查快照是否存在。得到以下回复:
{
"snapshot": "backup.backupname.17-01-31-1024",
"version_id": 2030099,
"version": "2.3.0",
"indices": [
"index_name"
],
"state": "SUCCESS",
"start_time": "2017-02-01T06:24:06.540Z",
"start_time_in_millis": 1485930246540,
"end_time": "2017-02-01T06:24:07.635Z",
"end_time_in_millis": 1485930247635,
"duration_in_millis": 1095,
"failures": [],
"shards": {
"total": 2,
"failed": 0,
"successful": 2
}
}
从日志中我看到:
/_snapshot/elasticsearch/backupname.17-01-31-1024/_restore
您确定您的快照名称是 elasticsearch:backupname.17-01-31-1024
吗?
您可以查看
GET /_snapshot/elasticsearch/_all
如果快照存在,请输出快照的状态。如果不成功,则快照未正确完成。
更新:在我看来你受到了类似错误的影响 https://discuss.elastic.co/t/elasticsearch5-restore-snapshot-from-2-4/66488
基本的解决方法是在 2.3 版本中恢复它并关闭集群并使用版本 5 启动集群,因为索引将在那时升级,或者等待错误修复。
虽然我不确定 ES 5 是否可以直接从 v2.3 恢复,因为 v2.4 介于两者之间。
我刚刚在 s3 存储库上创建了一个小型索引的快照。现在我试图恢复它,它说找不到快照。 我创建的快照来自 elasticearch 2.3,我正在尝试在 elasticsearch 5.1.1 上恢复。是否有一些我不知道的兼容性问题?
2017-02-01T01:38:32,669][INFO ][o.e.r.RepositoriesService] [development] update repository [elasticsearch]
[2017-02-01T01:38:33,552][WARN ][o.e.s.RestoreService ] [development] [elasticsearch:backupname.17-01-31-1024] failed to restore snapshot
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
[2017-02-01T01:38:33,552][WARN ][r.suppressed ] path: /_snapshot/elasticsearch/backupname.17-01-31-1024/_restore, params: {repository=elasticsearch, wait_for_completion=true, snapshot=backupname.17-01-31-1024}
org.elasticsearch.snapshots.SnapshotRestoreException: [elasticsearch:backupname.17-01-31-1024]snapshot does not exist
at org.elasticsearch.snapshots.RestoreService.restoreSnapshot(RestoreService.java:199) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:89) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.admin.cluster.snapshots.restore.TransportRestoreSnapshotAction.masterOperation(TransportRestoreSnapshotAction.java:49) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction.masterOperation(TransportMasterNodeAction.java:86) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.doRun(TransportMasterNodeAction.java:170) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527) [elasticsearch-5.1.1.jar:5.1.1]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-5.1.1.jar:5.1.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
此外,我在 ES 2.3 上恢复相同快照时没有收到错误消息 我使用 GET /_snapshot/elasticsearch/_all api 检查快照是否存在。得到以下回复:
{
"snapshot": "backup.backupname.17-01-31-1024",
"version_id": 2030099,
"version": "2.3.0",
"indices": [
"index_name"
],
"state": "SUCCESS",
"start_time": "2017-02-01T06:24:06.540Z",
"start_time_in_millis": 1485930246540,
"end_time": "2017-02-01T06:24:07.635Z",
"end_time_in_millis": 1485930247635,
"duration_in_millis": 1095,
"failures": [],
"shards": {
"total": 2,
"failed": 0,
"successful": 2
}
}
从日志中我看到:
/_snapshot/elasticsearch/backupname.17-01-31-1024/_restore
您确定您的快照名称是 elasticsearch:backupname.17-01-31-1024
吗?
您可以查看
GET /_snapshot/elasticsearch/_all
如果快照存在,请输出快照的状态。如果不成功,则快照未正确完成。
更新:在我看来你受到了类似错误的影响 https://discuss.elastic.co/t/elasticsearch5-restore-snapshot-from-2-4/66488
基本的解决方法是在 2.3 版本中恢复它并关闭集群并使用版本 5 启动集群,因为索引将在那时升级,或者等待错误修复。
虽然我不确定 ES 5 是否可以直接从 v2.3 恢复,因为 v2.4 介于两者之间。