DBAtlas · Atlas de operações de banco de dados

Reparar um Redis que não inicia por causa de um AOF corrompido (redis-check-aof, redis-check-rdb)

RedisPersistência

Comando

# 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

O que faz

Valida os arquivos AOF (base + incr + manifest) e o arquivo RDB; trunca o final incompleto ou corrompido do AOF para que o Redis possa iniciar novamente.

Quando usar

Quando o Redis não inicia com 'Bad file format reading the append only file' ou 'Unexpected EOF' após uma queda de energia, um disco cheio ou um desligamento abrupto.

Atenção

--fix apaga tudo do primeiro ponto corrompido até o fim do arquivo; se a corrupção estiver no meio do arquivo, todas as escritas posteriores são perdidas. Verifique na saída quantos bytes serão truncados (ok_up_to, diff) antes de confirmar. Um último comando incompleto (ex.: um HSET grande) é descartado por inteiro. Sempre faça uma cópia antes.

Abrir no DBAtlas →

Relacionados