[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コードでやる方法を紹介します。
お楽しみに!
カテゴリ: