손상된 AOF로 시작되지 않는 Redis 복구 (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)은 통째로 버려진다. 항상 먼저 사본을 만든다.