linuxqianrushikaifa 2023-04-20 11:51 采纳率: 0%
浏览 82
已结题

Influxdb TSM文件合并压缩失败, Error compacting TSM files

请教有没有懂时序数据库Influxdb的大神,用的默认存储策略,配置参数基本没修改,运行了几个月之后发现cpu占用率一直高居90%左右,通过调查发现是influxdb在合并压缩TSM文件的时候有一个文件合并失败了,然后一直在重复压缩步骤导致CPU高居不下,看日志发现 warn Error compacting TSM files {"log_id": "0hA8vBM0000", "service": "storage-engine", "engine": "tsm1", "tsm1_strategy": "full", "tsm1_optimize": false, "op_name": "tsm1_compact_group", "error": "block read error on hisdb/engine/data/65b1b1f12e9b83f5/autogen/26/000000157-000000001.tsm: decode error: unable to decompress block type float for key 'yx,k=40#!~#t': EOF"}

我用influx_inspect verify 验证有几个.tsm文件确实提示block read error损坏了。然后又用influx_inspect dumptsm导出TMS文件的内容,导出的时候发现又报的dumptsm:EOF,导出失败了,应该是文件中那些block块损坏了导致导出一半在某处断开,然后我又下载了EaseUS Data Recovery Wizard工具恢复.tsm文件,点恢复之后没什么变化,文件大小和恢复之前的一样,而且对恢复后的文件dumptsm还是会报错。请问还有没有什么方法能恢复损坏的.tsm(损坏的文件名000000133-000000004.tsm从文件名可以看出该文件是已经合并压缩过几次了,不知道在哪里出的问题)。

  • 写回答

5条回答 默认 最新

  • juer_0001 2023-04-20 11:57
    关注

    从日志中看到的错误信息提示了 block read error on hisdb/engine/data/65b1b1f12e9b83f5/autogen/26/000000157-000000001.tsm: decode error: unable to decompress block type float for key 'yx,k=40#!~#t': EOF,意味着在对 000000157-000000001.tsm 文件进行解压缩操作时出现了错误。

    根据这个错误信息,可以判断出问题是出现在磁盘读取这个 TSM 文件时。可能是文件已经损坏或者在读取过程中被修改或删除,或者硬件或网络问题导致读取错误等等。

    如果确认这个 TSM 文件不是必要的数据,可以手动删除这个文件,并在继续操作之前尝试修复磁盘中可能存在的错误。如果这个 TSM 文件中包含了必要的数据,那么就需要考虑如何修复这个文件,可以尝试从备份中恢复,或者从其他节点中获取这个文件的副本。

    另外,考虑更新 InfluxDB 的版本,可能是版本问题导致的错误。建议尝试最新版本并升级至最新版本,也许可以解决这个问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月27日
  • 修改了问题 4月23日
  • 赞助了问题酬金20元 4月20日
  • 创建了问题 4月20日