--- title: "尝试删除不存在的快照 - 如何解决此 Elasticsearch 异常" date: 2026-03-07 lastmod: 2026-03-07 description: "当Elasticsearch尝试删除不存在的快照时出现错误,可能是由于快照名称拼写错误或已被删除" tags: ["快照管理", "存储库", "数据备份"] summary: "版本: 6.8-7.7 简要来说,当 Elasticsearch 尝试删除指定存储库中不存在的快照时,会发生此错误。这可能是由于快照名称拼写错误或快照已被删除所致。要解决此问题,请确保快照名称正确且存在于存储库中。如果快照已被删除,则无需采取任何操作。如果错误仍然存在,请检查存储库的健康状况和配置。 日志上下文 # 日志 “Attempting to remove non-existent snapshot [{}] from repository data” 的类名是 RepositoryData.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: public RepositoryData removeSnapshot(final SnapshotId snapshotId, final ShardGenerations updatedShardGenerations) { Map<SnapshotId, SnapshotId> newSnapshotIds = snapshotIds.values().stream() .filter(id -> !snapshotId.equals(id)) .collect(Collectors.toMap(SnapshotId::getUUID, Function.identity())); if (newSnapshotIds.size() == snapshotIds.size()) { throw new ResourceNotFoundException("Attempting to remove non-existent snapshot [{}] from repository data", snapshotId); } Map<SnapshotId, SnapshotState> newSnapshotStates = new HashMap<>(snapshotStates); newSnapshotStates.remove(snapshotId.getUUID()); final Map<SnapshotId, Version> newSnapshotVersions = new HashMap<>(snapshotVersions); newSnapshotVersions." --- > **版本:** 6.8-7.7 简要来说,当 Elasticsearch 尝试删除指定存储库中不存在的快照时,会发生此错误。这可能是由于快照名称拼写错误或快照已被删除所致。要解决此问题,请确保快照名称正确且存在于存储库中。如果快照已被删除,则无需采取任何操作。如果错误仍然存在,请检查存储库的健康状况和配置。 日志上下文 ----------- 日志 "Attempting to remove non-existent snapshot [{}] from repository data" 的类名是 [RepositoryData.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: ```java public RepositoryData removeSnapshot(final SnapshotId snapshotId, final ShardGenerations updatedShardGenerations) { Map newSnapshotIds = snapshotIds.values().stream() .filter(id -> !snapshotId.equals(id)) .collect(Collectors.toMap(SnapshotId::getUUID, Function.identity())); if (newSnapshotIds.size() == snapshotIds.size()) { throw new ResourceNotFoundException("Attempting to remove non-existent snapshot [{}] from repository data", snapshotId); } Map newSnapshotStates = new HashMap<>(snapshotStates); newSnapshotStates.remove(snapshotId.getUUID()); final Map newSnapshotVersions = new HashMap<>(snapshotVersions); newSnapshotVersions.remove(snapshotId.getUUID()); ```