DBAtlas · データベース運用アトラス

破損した 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) は丸ごと破棄される。必ず先にコピーを取得する。

DBAtlas で開く →

関連項目