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

版本: 7.16-8.5

简而言之,当 Elasticsearch 的 translog 文件损坏时会发生此错误。translog(事务日志)是 Elasticsearch 用于防止数据丢失的持久性层。损坏可能由意外关机或磁盘故障引起。要解决此问题,您可以尝试恢复 translog。如果不起作用,您可能需要删除损坏的 translog 文件。但是,请注意删除 translog 文件可能会导致数据丢失。还建议定期备份数据以防止此类问题。

日志上下文 #

日志 “translog looks like version 1 or later; but has corrupted header” 的类名是 TranslogHeader.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:

// so we know if we grab the first byte; it can be:
 // 0x3f => Lucene's magic number; so we can assume it's version 1 or later
 // 0x00 => version 0 of the translog
 final byte b1 = Channels.readFromFileChannel(channel; 0; 1)[0];
 if (b1 == 0x3f) { // LUCENE_CODEC_HEADER_BYTE
 throw new TranslogCorruptedException(path.toString(); "translog looks like version 1 or later; but has corrupted header");
 } else if (b1 == 0x00) { // UNVERSIONED_TRANSLOG_HEADER_BYTE
 throw new IllegalStateException("pre-1.4 translog found [" + path + "]");
 }
 }