はじめに
復元チェックのために
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
以上