2025-08-25

Radis:Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix

 表題に書いてあるように

# Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>

というエラーが出た場合

環境

  • Mac
  • Learning Locker in Docker Desktop

原因

  • appendonly.aofファイルというのが破損している。

  • Redis の AOF は「追記型ログ」なので、最後の部分だけ破損しやすい

対策
以下のコマンドを実行。意味は以下に解説。


(イメージのpull)

  • redis-check-aof などのツールを 同じバージョン環境で実行できるようにするためにpull

(バックアップ処理)

  • alpine コンテナを一時的に起動し、終了後は自動削除。
  • Redis のデータが入っている Docker ボリュームを、このコンテナの /data にマウント。
  • 今いる作業ディレクトリ(ホスト)を /backup にマウント。
  •  tar ファイルをホストに書き出せる。
  • Alpine のシェルで /data に移動し、その中身を tar.gz に固めて /backup に保存。

(修復処理)
  • docker run : 新しいコンテナを一時的に起動する。
  • --rm : コンテナ終了後に自動で削除する。ゴミが残らない。
  • -it : 対話的モード(-i 標準入力を開く、-t 擬似端末を割り当てる)。
  • Docker ボリューム learning-locker-docker-image-main_learninglocker-redis をコンテナ内の /data にマウントする。
  • Redis のデータファイル(appendonly.aof や dump.rdb)がここに入っている。
  • サーバーではなく、同じイメージに含まれるツール redis-check-aof を実行したい。そこで --entrypoint で実行プログラムを差し替えている。


0 件のコメント:

コメントを投稿