DBAtlas · Atlas d'exploitation des bases de données

Réparer un Redis qui ne démarre pas à cause d'un AOF corrompu (redis-check-aof, redis-check-rdb)

RedisPersistance

Commande

# With Redis stopped, copy the files first:
cp -a /var/lib/redis/appendonlydir /var/lib/redis/appendonlydir.bak
# Check (7.0+ multi-part AOF: pass the manifest file):
redis-check-aof /var/lib/redis/appendonlydir/appendonly.aof.manifest
# Repair by truncating everything after the first corrupt point (asks for confirmation):
redis-check-aof --fix /var/lib/redis/appendonlydir/appendonly.aof.manifest
# Verify the RDB file:
redis-check-rdb /var/lib/redis/dump.rdb

Ce que fait la commande

Valide les fichiers AOF (base + incr + manifest) et le fichier RDB ; tronque la fin incomplète ou corrompue de l'AOF pour que Redis puisse redémarrer.

Quand l'utiliser

Quand Redis refuse de démarrer avec 'Bad file format reading the append only file' ou 'Unexpected EOF' après une coupure de courant, un disque plein ou un arrêt brutal.

Attention

--fix supprime tout depuis le premier point corrompu jusqu'à la fin du fichier ; si la corruption se trouve au milieu du fichier, toutes les écritures ultérieures sont perdues. Vérifiez dans la sortie combien d'octets seront tronqués (ok_up_to, diff) avant de confirmer. Une dernière commande incomplète (par ex. un gros HSET) est entièrement abandonnée. Faites toujours une copie au préalable.

Ouvrir dans DBAtlas →

Voir aussi