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

版本: 8.9-8.9

简而言之,当 Elasticsearch 在尝试从事务日志(translog)恢复数据时遇到问题,就会发生此错误。这可能是由于事务日志损坏或磁盘 I/O 错误导致的。要解决此问题,您可以尝试以下方法:1) 重启 Elasticsearch 节点,如果问题是暂时的,这可能会有所帮助。2) 删除损坏的事务日志文件,但这可能会导致数据丢失。3) 如果您有快照,请从快照中恢复数据。始终确保定期备份数据以防止此类问题。

日志上下文 #

日志 “recoverFromTranslog” 类名是 Engine.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:

    throw runtimeException;
    } else {
        // the old code was "throws IOException" so we shouldn't see any other exception types here
        logger.error("checked non-IOException unexpectedly thrown"; e);
        assert false : e;
        throw new UncategorizedExecutionException("recoverFromTranslog"; e);
    }
    } catch (InterruptedException e) {
        // We don't really use interrupts in this area so this is somewhat unexpected (unless perhaps we're shutting down); just treat
        // it like any other exception.
        Thread.currentThread().interrupt();