Redisスナップショットを転送しました(dump.rdb
ファイル)scp
を使用してリモートサーバーに接続します。このリモートでredisサーバーを実行し、dump.rdb
ファイル。どうやってやるの?
特別なことは何もありません。新しいマシンにredisサーバーをインストールし、構成ファイルを編集するだけです。コピーしたばかりのダンプファイルの場所を指すように、次のパラメーターを変更するだけです。
# The filename where to dump the DB
dbfilename mydump.rdb
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /data/mydirectory/
最後に、redisサーバーは通常の方法で起動できます。
appendonly
フラグがno
に設定されているデータベースでは、次のことができます。
dir
オプションです)。また、バックアップファイル名がdbfilename
configオプションと一致することを確認してください。一方、追加のみのデータベースにrdbファイルを復元する必要がある場合は、次の行に沿って何かを行う必要があります。
dir
オプションです)。また、バックアップファイル名がdbfilename
configオプションと一致することを確認してください。appendonly
フラグをno
に変更します(それ以外の場合、redisは起動時にrdbファイルを無視します)。redis-cli BGREWRITEAOF
新しいappendonlyファイルを作成します。appendonly
フラグをyes
に復元します。具体的には、これはredis configファイルのコメントからの関連ドキュメントです:
# Note that you can have both the async dumps and the append only file if you
# like (you have to comment the "save" statements above to disable the dumps).
# >> Still if append only mode is enabled Redis will load the data from the
# >> log file at startup ignoring the dump.rdb file.
Redis 2.6以降を実行すると仮定すると、Redisスナップショットのファイル名はdump.rdb
、およびディレクトリ/home/user/dbs
、次のコマンドはトリックを実行します。
redis-server --dbfilename dump.rdb --dir /home/user/dbs
公式ドキュメントの関連セクション: コマンドライン経由で引数を渡す
または、次のことができます。
service redis6379 stop
cp /path/to/dump-6379.rdb /var/lib/redis/dump-6379.rdb
。適切な権限を付与します(user:groupはredis:redisおよびモード644でなければなりません)service redis6379 start
Redisはファイルを正しい場所にコピーする前にredisサーバーを停止することが重要です。Redisは終了する前にスナップショットを保存するため、ファイルが置き換えられます。
また、既存のdump.rdbファイルを最初にバックアップすることもできます。
次のように、2番目のサーバーでredisを開始します。
$ > redis-server /path/to/my/redis/configuration/file/redis.conf
redisが起動すると、nameとfile pathを探すため、rdbファイルが見つかります構成ファイル(redis.conf)で、redisサーバーの起動時に指定します。上記。
ファイル名とパスを指定するには、redis.confファイルテンプレート(redisソースのルートディレクトリにある)で2行を編集します。サーバーの起動時に指定したディレクトリの場所に、改訂版をredis.confとして保存します。
必要な設定は、ソースの最上位ディレクトリのredis.confテンプレートの行127にあります。 および137(redisバージョン2.6.9)。
# The filename where to dump the DB
dbfilename dump.rdb
# The working directory
dir ./
ご覧のとおり、両方の設定にデフォルトが用意されています
したがって、これらの2行の最初(127)を変更してrdbファイルを識別し、2行目(137)でスナップショットrdbファイルの実際のファイルパスをデフォルトの "./"に置き換えます。 redis.confを変更とともに保存し、この新しいconfファイルでredisを渡し始めます。
appendonly noを設定してみてください。私の場合、*。aofファイルは空(0バイト)だったため、appendonly = noを設定してから、dump.rdbをロードする必要があります。
ここでは言及されなかった小さな詳細を追加したいと思います。設定ファイルは使用せず、代わりにコマンドラインですべてを指定します。
redis-server
の起動時にmydump.rdbファイルとappendonly.aofファイルの両方が指定されている場合、appendonly.aof
ファイルが追加され、appendonly.aofのデータがロードされます。例えば:
redis-server --dbfilename mydump001.rdb --dir /data --appendonly yes
上記の開始呼び出しは、/dir
ロケーションを使用して、mydump001.rdb
またはappendonly.aof
ファイルの存在を検出します。この場合、redis-server
はappendonly.aof
からコンテンツをロードします。 appendonly.aof
が存在しない場合、空の/data/appendonly.aof
が作成され、redis-serverは空になります。
特定のダンプファイルをロードする場合は、次の操作を実行できます。
redis-server --dbfilename mydump001.rdb --dir /data
私はこの答えを追加しました。どちらがどれなのかは明らかではありません。 2つのバックアップファイルが存在する場合、これはしばしば言及されません。