--- title: "无法从只读仓库删除快照——如何解决此 Elasticsearch 异常" date: 2026-02-05 lastmod: 2026-02-05 description: "当尝试从设置为只读的 Elasticsearch 仓库中删除快照时,会触发此错误。本文介绍了如何通过修改仓库设置或创建新仓库来解决这个问题。" tags: ["快照管理", "仓库配置", "只读模式", "数据备份", "异常处理"] summary: " 版本: 6.8-8.9 简要来说,当您尝试从设置为只读的 Elasticsearch 仓库中删除快照时,会发生此错误。仓库的设置会阻止任何修改操作,包括删除操作。 要解决此问题,您可以将仓库设置从只读更改为读写。或者,您可以创建一个具有读写权限的新仓库,将快照移动到那里,然后再删除快照。在进行任何更改之前,请始终确保备份数据,以避免数据丢失。 日志上下文 # 日志 “cannot delete snapshot from a readonly repository” 的类名是 BlobStoreRepository.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的人参考: long repositoryStateId; Version repositoryMetaVersion; SnapshotDeleteListener listener ) { if (isReadOnly()) { listener.onFailure(new RepositoryException(metadata.name(); "cannot delete snapshot from a readonly repository")); } else { threadPool.executor(ThreadPool.Names.SNAPSHOT).execute(new AbstractRunnable() { @Override protected void doRun() throws Exception { final MaprootBlobs = blobContainer().listBlobs(); " --- > **版本:** 6.8-8.9 简要来说,当您尝试从设置为只读的 Elasticsearch 仓库中删除快照时,会发生此错误。仓库的设置会阻止任何修改操作,包括删除操作。 要解决此问题,您可以将仓库设置从只读更改为读写。或者,您可以创建一个具有读写权限的新仓库,将快照移动到那里,然后再删除快照。在进行任何更改之前,请始终确保备份数据,以避免数据丢失。 ## 日志上下文 日志 "cannot delete snapshot from a readonly repository" 的类名是 [BlobStoreRepository.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的人参考: ```java long repositoryStateId; Version repositoryMetaVersion; SnapshotDeleteListener listener ) { if (isReadOnly()) { listener.onFailure(new RepositoryException(metadata.name(); "cannot delete snapshot from a readonly repository")); } else { threadPool.executor(ThreadPool.Names.SNAPSHOT).execute(new AbstractRunnable() { @Override protected void doRun() throws Exception { final MaprootBlobs = blobContainer().listBlobs(); ```