ERR redis data_error ai_generated partial

RDB CRC64 checksum error: expected <checksum> but computed <checksum>

ID: redis/rdb-load-crc-error

Also available as: JSON · Markdown · 中文
80%Fix Rate
87%Confidence
1Evidence
2023-09-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
6.0.0 active
7.0.0 active
7.2.0 active

Root Cause

The RDB file on disk has a CRC64 checksum mismatch, indicating corruption during writing, storage, or transfer, often due to disk failures or incomplete writes.

generic

中文

磁盘上的RDB文件CRC64校验和不匹配,表明在写入、存储或传输过程中发生损坏,通常是由于磁盘故障或不完整写入。

Official Documentation

https://redis.io/commands/debug-rdb-checksum/

Workarounds

  1. 90% success Restore from the most recent valid RDB or AOF backup: `redis-check-rdb /path/to/dump.rdb` to validate integrity, then replace the corrupted file with a backup and restart Redis.
    Restore from the most recent valid RDB or AOF backup: `redis-check-rdb /path/to/dump.rdb` to validate integrity, then replace the corrupted file with a backup and restart Redis.
  2. 85% success If AOF is enabled and more recent, force AOF replay by setting `appendonly yes` in redis.conf and removing the corrupted RDB file, then restart Redis to rebuild the dataset from AOF.
    If AOF is enabled and more recent, force AOF replay by setting `appendonly yes` in redis.conf and removing the corrupted RDB file, then restart Redis to rebuild the dataset from AOF.
  3. 60% success Use `redis-check-rdb --fix /path/to/dump.rdb` to attempt repair, though this may discard some data. Verify the fixed file with another check before loading.
    Use `redis-check-rdb --fix /path/to/dump.rdb` to attempt repair, though this may discard some data. Verify the fixed file with another check before loading.

中文步骤

  1. 从最新的有效RDB或AOF备份恢复:运行 `redis-check-rdb /path/to/dump.rdb` 验证完整性,然后用备份替换损坏文件并重启Redis。
  2. 如果AOF已启用且更新,在redis.conf中设置 `appendonly yes` 并删除损坏的RDB文件,然后重启Redis以从AOF重建数据集。
  3. 使用 `redis-check-rdb --fix /path/to/dump.rdb` 尝试修复,但这可能会丢弃一些数据。加载前用另一个检查验证修复后的文件。

Dead Ends

Common approaches that don't work:

  1. 95% fail

    Simply restarting Redis without repairing the RDB file will cause the same error on the next load, leading to a crash loop.

  2. 70% fail

    Setting rdbchecksum to 'no' in redis.conf bypasses the check but does not fix the corruption; data may be silently lost or misread.