DBAtlas · Атлас эксплуатации баз данных

Восстановление Redis, не запускающегося из-за повреждённого AOF (redis-check-aof, redis-check-rdb)

RedisПерсистентность

Команда

# 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

Что делает

Проверяет файлы AOF (base + incr + manifest) и файл RDB; обрезает незавершённый или повреждённый хвост AOF, чтобы Redis снова мог запуститься.

Когда использовать

Когда Redis не запускается с 'Bad file format reading the append only file' или 'Unexpected EOF' после отключения питания, заполнения диска или внезапной остановки.

Внимание

--fix удаляет всё от первой повреждённой точки до конца файла; если повреждение в середине файла, все последующие записи теряются. Перед подтверждением проверьте в выводе, сколько байт будет обрезано (ok_up_to, diff). Незавершённая последняя команда (например, большой HSET) отбрасывается целиком. Всегда сначала делайте копию.

Открыть в DBAtlas →

Связанные материалы