重新启动带有redis:6.2.5-al菠萝3.14的停靠容器后,它不能以错误开始:
[offset 55130] Internal error in RDB reading offset 0, function at rdb.c:411 -> Invalid LZF compressed string在清理了Redis存储之后,一切都好了:
# ls -la /redis/
total 68
drwxr-xr-x. 2 polkitd 1000 43 Oct 4 19:22 .
drw-r-----. 14 root root 179 Sep 8 19:51 ..
-rw-r--r--. 1 polkitd 1000 63907 Oct 4 19:13 dump.rdb
-rw-r--r--. 1 polkitd root 4096 Oct 4 19:22 .dump.rdb.swp有人能解释一下这个问题的原因吗?
发布于 2021-10-04 13:07:36
这意味着RDB数据库已损坏。您应该停止容器并从备份中还原文件。如果无法还原它,则可以重命名/移动它,使其具有损坏的备份,以防需要部分恢复,然后启动redis容器。
如果这种情况经常发生,请检查AOF (仅附加文件)是否更适合您。您可以同时拥有RDB和AOF。有关更多细节,请阅读红系持久性神秘性。
要检查RDB文件的一致性,可以使用:
redis-check-dump dump.rdb有关更多详细信息,请参阅4.3.1验证快照和仅附加的文件。
如果使用群集,则可以使用以下恢复其中一个节点:
rladmin recover list # To see the list of all files to be recovered
rladmin recover all
rladmin recover db <database_id|name> # To recover only one DB
recover db only_configuration <db_name> # To recover only the DB config
rladmin status # To check which DBs were recovered在集群中,还可以使用以下方法进行恢复数据库:
rladmin cluster recover ....见:簇恢复文档
https://serverfault.com/questions/1079489
复制相似问题