ERR
redis
data_error
ai_generated
partial
错误:RDB 校验和不匹配:期望 0xAB12CD34 但得到 0x5678EF90
Error: RDB checksum mismatch: expected 0xAB12CD34 but got 0x5678EF90
ID: redis/rdb-checksum-mismatch-restore
75%修复率
88%置信度
1证据数
2023-11-20首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 6.2.0 | active | — | — | — |
| 7.0.0 | active | — | — | — |
| 7.2.0 | active | — | — | — |
根因分析
磁盘上的 RDB 文件在创建后被损坏或修改,导致其校验和与期望值不同。
English
The RDB file on disk has been corrupted or modified after creation, causing its checksum to differ from the expected value.
官方文档
https://redis.io/docs/management/persistence/解决方案
-
Use redis-check-rdb to validate and attempt repair: 'redis-check-rdb /var/lib/redis/dump.rdb' then if repair is needed 'redis-check-rdb --fix /var/lib/redis/dump.rdb'
-
Restore from the latest valid RDB backup or promote a replica to primary if replication is configured
无效尝试
常见但无效的做法:
-
Restarting Redis without fixing the RDB file
100% 失败
Redis will reload the same corrupt RDB file and fail again with the same checksum error.
-
Deleting the RDB file and restarting
95% 失败
This causes complete data loss unless a replica or backup is available.
-
Running redis-check-rdb with --fix on a heavily corrupted file
60% 失败
The fix tool can only recover partially; if the checksum mismatch is severe, it may truncate the file and lose data.