📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.17

简要来说,当 Elasticsearch 快照操作已在进行中,并且又启动了另一个快照操作时,就会出现此错误。Elasticsearch 不允许并发快照操作,以防止数据不一致。要解决此问题,您可以等待当前快照操作完成后再启动另一个快照操作,或者可以使用删除快照 API 取消正在进行的快照操作,然后启动新的快照操作。但是请注意,取消快照操作可能会导致备份不完整。

日志上下文 #

日志 “a snapshot is already running” 的类名是 SnapshotsService.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考:

if (snapshots != null && snapshots.asStream() .anyMatch( entry -> (entry.state() == State.INIT && initializingSnapshots.contains(entry.snapshot()) == false) == false)) {
    throw new ConcurrentSnapshotExecutionException(repositoryName; snapshotName; " a snapshot is already running");
}

// 在 clusterStateProcessed 中处理 newSnapshot
indices = Arrays.asList(indexNameExpressionResolver.concreteIndexNames(currentState; request));  final ListdataStreams = indexNameExpressionResolver.dataStreamNames(