永続化されている redis のバックアップ、復元


はじめに

復元チェックのために
Redis Desktop Manager
https://redisdesktop.com

があると便利。

・データファイル redis.conf ファイルのdirを見てね
・データファイル名 redis.conf ファイルのdbfilenameを見てね
・redisは永続化起動されている状態で始める。
・サーバーAでバックアップを取得、Bに渡して復元
・redis-cli のパスがわからんけりゃ以下で調べる
・monitなど自動でredisを再起動するサービスを使っている場合はそれも止める。


find / -name '*redis-cli*' -print

サーバーAで作業

バックアップを実行


/home/your/redis-3.2.11/src/redis-cli bgsave

バックアップできたかな?

現在の時刻よりも古いのが表示されたらバックアップ完了してる。


date --date "@`/home/your/redis-3.2.11/src/redis-cli lastsave`" +"%Y/%m/%d %H:%M"

winscp で ダウンロード


/dump.rdb

バックアップを取得完了したよ。

以下、すべてサーバーBで作業

さぁ、復元作業の始まり

winscp で アップロード


/your/dump.rdb

権限ないと怒られるので、まずはユーザーフォルダにアップしておく。

Redisを止めて、/dump.rdbを削除

かならず、サーバーを止めてからファイルを削除してね。じゃないとうまくバックアップを復元できません。また、ファイル名、場所は /dump.rdb(初期値の場合) にしてね。

#service monit stop
sudo systemctl stop redis
rm /dump.rdb

さっきアップロードした /your/dump.rdb を移動


mv /home/your/dump.rdb /dump.rdb

再起動


sudo systemctl start redis
#service monit start

以上