Docker内のRedisのAOFファイルが壊れてしまった場合の対処法
TL;DR
docker-compose run --rm redis redis-check-aof --fix /data/appendonly.aof
Docker内のRedisのAOFファイルが壊れてしまった
ある日突然Dockerで使用しているRedisが起動しなくなってしまいました。
redis_1 | Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>
redis_1 exited with code 1
AOFファイルがおかしくなっているのでFIXしてあげれば良い模様。
しかしredisが起動してくれないためAOFファイルのパスすらわからない。
What is the default location for Redis AOF file for Ubuntu?
上記のStackOverflowを参考にするとパスは
/var/lib/redis/appendonly.aof
であったためこのパスで実行してみます
docker-compose run --rm redis redis-check-aof --fix /var/lib/redis/appendonly.aof
Cannot open file: /var/lib/redis/appendonly.aof
失敗
上記パスのファイルが開けないため、このパスのファイルは存在しないようです...
上司に DockerのRedis内のappendonly.aof
のパスを確認してもらうと/data/appendonly.aof
でした。
docker-compose run --rm redis redis-check-aof --fix /data/appendonly.aof
0x 1874d306: Expected prefix '
AOF analyzed: size=410310560, ok_up_to=410309382, diff=1178
This will shrink the AOF from 410310560 bytes, with 1178 bytes, to 410309382 bytes
Continue? [y/N]: y
Successfully truncated AOF
truncateされてる!?
しかしコンテナを起動すると無事redisに接続できてデータも残っていた、良かった。
全てのDocker内のAOFファイルのパスが私のと同じとは限らないですが、参考になればと思います。
Author And Source
この問題について(Docker内のRedisのAOFファイルが壊れてしまった場合の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/reiya018/items/4ce72c4992f0234de0b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .