--- title: "恢复被取消——如何解决此 Elasticsearch 异常" date: 2026-02-11 lastmod: 2026-02-11 description: "Elasticsearch 分片恢复过程中被中断或停止的错误,通常由于节点离开集群、更高优先级的恢复过程启动或手动干预导致。" tags: ["恢复", "异常处理", "分片恢复"] summary: " 版本: 7.8-8.9 简而言之,当 Elasticsearch 分片的恢复过程被中断或停止时,会出现此错误。这可能是由于节点离开集群、更高优先级的恢复过程启动,或手动干预造成的。要解决此问题,您可以尝试重新启动恢复过程,确保所有节点稳定并连接到集群,或检查是否有任何可能干扰恢复的正在进行的进程。如果问题持续存在,考虑通过添加更多节点或提高网络稳定性来增强集群的韧性。 日志上下文 # 日志"恢复被取消"的类名是 RemoteRecoveryTargetHandler.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考: public void cancel() { isCancelled = true; if (onGoingRetryableActions.isEmpty()) { return; } final RuntimeException exception = new CancellableThreads.ExecutionCancelledException("recovery was cancelled"); // Dispatch to generic as cancellation calls can come on the cluster state applier thread threadPool.generic().execute(() -> { for (RetryableActionaction : onGoingRetryableActions.values()) { action.cancel(exception); } " --- > **版本:** 7.8-8.9 简而言之,当 Elasticsearch 分片的恢复过程被中断或停止时,会出现此错误。这可能是由于节点离开集群、更高优先级的恢复过程启动,或手动干预造成的。要解决此问题,您可以尝试重新启动恢复过程,确保所有节点稳定并连接到集群,或检查是否有任何可能干扰恢复的正在进行的进程。如果问题持续存在,考虑通过添加更多节点或提高网络稳定性来增强集群的韧性。 日志上下文 ----------- 日志"恢复被取消"的类名是 [RemoteRecoveryTargetHandler.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考: ```java public void cancel() { isCancelled = true; if (onGoingRetryableActions.isEmpty()) { return; } final RuntimeException exception = new CancellableThreads.ExecutionCancelledException("recovery was cancelled"); // Dispatch to generic as cancellation calls can come on the cluster state applier thread threadPool.generic().execute(() -> { for (RetryableActionaction : onGoingRetryableActions.values()) { action.cancel(exception); } ```