2013-10-07 24 views
17

最近、MongoDBにデータを移植し、日常のバックアップを実行しています(cronジョブから実行することを推奨します)。バックアップの1つをセカンダリmongoデータベースに復元してください。リモートサーバからのMongodump

次のように私たちのシステムが設定されています

3台のサーバがあります。サーバー1は、開発のmongoデータベースを持っていると、サーバ2は、2つのmongoデータベース、ステージングデータ用と生産のための1つを持ち、そして第三のサーバがありますどこからcronジョブ/バッチスクリプトを実行しますか?

私はモンゴのドキュメントをチェックし、私たちのcronジョブサーバにログインし、次のコマンドを実行しようとした:(ユーザー名、ホスト、およびパスワードはセキュリティのために変更され、私は実際にローカルホストに接続していないよ)

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 
成功した10月7日10時03分42秒27017
月:開発のシードとレプリカセット127.0.0.1のための新しいレプリカセットのモニターを開始

月10月7日10時03分42秒:

は、私は次のメッセージを取得します種子開発に接続:レプリカセット127.0に対して27017。 0.1
Mon Oct 7 10:03:42警告:ノード:開発:27017はセットの一部ではありません:127.0.0.1 ismaster:{ismaster:true、maxBsonObjectSize:16777216、ok:1.0}
Mon Oct 7 10 :03:44レプリカセット127.0.0.1のレプリカセットモニタが開始されました。アドレスは127.0.0.1/
Mon Oct 7 10:03:44 [ReplicaSetMonitorWatcher]開始は[127.0.0.1/development:27017]に接続できませんでした接続私はmongo -u -p ip/development

私たちの究極の目標ウィルを使用してのmongoデータベースに接続できることを確認した127.0.0.1/development:27017

の設定に失敗しましたプロダクションデータベースからデータをダンプしてステージングデータベースに格納することです。これらの2つのデータベースは、違いがある場合は同じボックスにありますが、テスト目的のために私は開発テストデータのバックアップを取得しようとしています。

+3

'--host 127.0.0.1/development'を' --host 127.0.0.1 -d development'に置き換えてみてください。問題が解決するかもしれません。 –

+0

それで、 'mongo -u -p'を使って接続すると、ホストの後にデータベースを追加するだけです。明らかに、それは少なくともmongodumpの場合、それを処理する適切な方法ではありません。ダンプはその変更に完全に対応しました – awestover89

答えて

32

mongoクライアントはMongoDB connection string URIを解析できます。したがって、すべての接続パラメータを個別に指定する代わりに、単一の接続文字列URIを渡すことができます。

接続URIをhostとして渡そうとしていますが、127.0.0.1/developmentは有効なホスト名ではありません。それはあなたがhost別にdatabaseパラメータを指定する必要があります意味:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 
0
mongodump --host remotehostip:port --db dbname -u username -p password 
7


これは私のために働きました。

リファレンス:https://docs.mongodb.com/manual/reference/program/mongodump


構文1:

mongodump --host <hostname:port> --db <database> --username <username> --password <password> --out <path> 

構文2:

mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path> 



例1:

mongodump --host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07 

例2:ここ

mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07 
0

は、ローカルマシンにノード・サーバーからコレクションをエクスポートする例である:

Host : xxx.xxx.xxx.xx 
Port :27017 
Username:”XXXX” 
Password :”YYYY” 
AuthDB : “admin” 
“DB”: “mydb” 

D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u “XXXX” -p “YYYY” –authenticationDatabase “admin” –db “mydb” 
関連する問題