31

コンテクスト

ライブで実行されているredisサーバーがあります。

バックアップを作りたい。

アイディア:

私は次のことをしたい:

cp dump.rdb ~/some-other-location/06-24-2012.rdb ?

懸念

dump.rdbが常に一貫性のあるデータベースストアであることを約束するものは何もありません。(つまり、cpを実行している間、redisがデータの書き込みの途中であるため、dump.rdbが一貫した状態になっていない可能性があります。)

問題:

dump.rdbのコピーを作成するためにredisdbをシャットダウンする必要があるため、これは悪いことです。

質問:

redis-serverの実行中に、データベースのライブバックアップを作成する正しい方法は何ですか?そして、マニュアルのどの部分が、このメソッドが一貫性​​のある(半分書かれていない)状態のデータベースを作成することを私に約束しています。

ありがとう!

4

2 に答える 2

49

http://redis.io/topics/persistenceから

Redisは、データベースの実行中にRDBファイルをコピーできるため、データのバックアップに非常に適しています。RDBは、作成後に変更されることはなく、作成中は一時的な名前を使用し、rename(2)のみを使用してアトミックに最終的な宛先に名前が変更されます。新しいスナップショットが完了したとき。

したがって、正しい方法は、dump.rdbをバックアップ場所にコピーすることです。

于 2012-06-25T06:00:08.263 に答える
2

Amazon S3を使用している場合、 s3cmdツールを使用してRedisデータベースをバックアップするのは非常に簡単です。

s3cmd: http ://s3tools.org/s3cmd

チュートリアル: http: //guchex.com/viniciusfbm/post/50/how-to-backup-redis-database-encrypted-to-s3-via-command-line-ubuntu

于 2013-02-23T11:29:20.490 に答える