web-dev-qa-db-ja.com

MongoDBデータベースをローカルマシンにコピーする

ローカルネットワーク上のIPアドレスが192.168.1.20であるリモートサーバーマシン上にあるMongoDBデータベースがあります。開発とテストの目的で、またセキュリティ上の目的でサーバー上のデータベースを変更または削除することは許可されていないため、個人用にローカルマシンにデータベースをコピーしたいと考えています。

誰に教えてもらえますか?どうすればこれを達成できますか?

15
Razor

データベースのコピー コマンドがありますが、これはあなたのニーズに適していると思います。

db.copyDatabase("DATABASENAME", "DATABASENAME", "localhost:27018");

または、MongoDbを停止し、データベースファイルを別のサーバーにコピーして、そこでMongoDbのインスタンスを実行することもできます。

9
sas

これを行うには、リモートデータベースのダンプをローカルマシンに作成し、それを復元します。

  1. mongoインスタンスが稼働中であることを確認してください(例:mongod.exeターミナルウィンドウのbinフォルダから。私のWindowsコンピューターでは、C:\ mongodb\binです)

  2. リモートdbからダンプを作成する:新しいターミナルウィンドウを開き、binフォルダーに再度移動して、次のコマンドを実行します。

    mongodump -h example.Host.com --port 21018 -d dbname --username username --password yourpass

    (自分の状況に合わせてパラメーターを変更してください。)

  3. ダンプされたデータベースを復元する:ダンプが作成されたら、次のコマンドを実行してローカルデータベースを作成します。

    mongorestore -d theNameYouWantForYourLocalDB dump\nameOfRemoteDB

    (nameOfRemoteDBを前のコマンドと同じリモートdbの名前に置き換え、theNameYouWantForYourLocalDBを新しいローカルDBに付ける名前に置き換えます)

27
malla

これは@mallaの回答に対するコメントであるべきですが、コメントする評判が足りないので、他の参考のためにここに投稿します。

手順2で、リモートサーバーからファイルをダンプする場合は、後でローカルに復元できるようにオプションを追加することを忘れないでください(最初の試行では、ファイルを追加せず、dump\db_nameは私の方法が効率的であるかどうかはわかりません。しかし、それは私のために働いた。

ステップ2:

mongodump -h example.Host.com --port 21018  -d dbname --username username --password yourpass --out <path_you_want_to_dump>

ステップ3:

mongorestore -d theNameYouWantForYourLocalDB \<path_you_want_to_dump> + nameOfRemoteDB
1
Carol.Z
1
10 cls

mongodbには、インポートおよびエクスポート用のコマンドラインツールがあります。を見てみましょう mongodump --collection collection --db testおよびmongorestore --collection people --db accounts dump/accounts/

http://docs.mongodb.org/v2.2/reference/mongodump/http://docs.mongodb.org/v2.2/reference/mongorestore/

これはネットワーク上でも機能します

1

mongoexport コマンドを使用して、データベースをローカルマシンにコピーできます。

0
Munim