mongoDBのデータ移行

Aというサーバで動作しているmongoDBのデータをBというサーバへ移す。
mongodumpとmongorestoreを使ってやりました。

Bでmongodumpをつかってデータをダンプする。

AとBとの間でmongoDBのTCPポートで通信できれば以下のようにしてmongodumpを実行してデータをダンプできる。

$ mongodump --host A

AはサーバAのIPアドレスか、名前解決できるホスト名。
これでカレントディレクトリにdumpというディレクトリができて、その下にDB毎にダンプファイルができる。
通信できない場合でも、できたディレクトリごとBへなんらかの方法で転送すればいい。

Bでdumprestoreを使ってリストア

$ mongorestore -d db_name --drop ./dump/db_name

db_nameはリストアしたいDBの名前。全部まとめてやるときは

$ mongorestore --drop ./dump

でいいはず。--dropをつけると移行対象になっているDBを一旦削除してからリストアしてくれる。