[MongoDB]サーバ間でデータ移管する方法(ダンプ&リストア編)
やり方
普通にダンプしてリストアするだけです(mongodumpしてmongorestore)。mongorestoreは普通に使うと「追記」が行われるので、このケースにはもってこいです。
準備
作業ミスが怖いので、事前に両方のデータをバックアップしておきます。ダンプ
サーバAでmongodump --db newdb --out /tmp/mongodump
ずらずらとbsonファイルが出力されます。/tmp/mongodump/newdb/userlog.bson
/tmp/mongodump/newdb/system.indexes.bson
ダンプデータを転送
rsync -avz /tmp/mongodump hostB:/tmp/リストア
サーバBでsudo /etc/init.d/mongod stop # デーモンを止めておく
sudo mongorestore --dbpath /data/db --db olddb /tmp/mongodump/newdb
これで、サーバAのデータがサーバBに追記されます。レコード件数やデータの中身をチェックして、問題なければサーバAのデータを削除します。
mongo hostA/newdb
> db.dropDatabase();
まとめ
こんな感じです。実際に本番でやる場合は、ちゃんとリハーサルとか練習してからやりましょうね☆
次回は、この処理をMongoShellを使ってJavaScriptコードでやる方法を紹介します。
お楽しみに!
カテゴリ:
MongoDB