web-dev-qa-db-ja.com

リモートサーバーからのMongodump

最近、いくつかのデータをMongoDBに移植し、できればcronジョブからの毎日のバックアップの実行を検討しており、バックアップの1つをセカンダリmongoデータベースに復元しています。

システムは次のように設定されています。

  • サーバー1:開発mongoデータベース
  • サーバー2:2つのmongoデータベース、1つはステージングデータ用、もう1つは本番用
  • サーバー3:そこからすべてのcronジョブ/バッチスクリプトを実行します。

Mongo docsを確認し、cronジョブサーバーにログインして、次のコマンドを実行しようとしました:(セキュリティのためにユーザー名、ホスト、パスワードを変更しました。実際にはlocalhostに接続していません)

mongodump --Host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

次のメッセージが表示されます。

Mon Oct 7 10:03:42開発のシードを含むレプリカセット127.0.0.1の新しいレプリカセットモニターの開始:27017
月10月7日10:03:42がシード開発に正常に接続しました:レプリカセット127.0.0.1の27017
月10月7日10:03:42警告:ノード:development:27017はセットの一部ではありません:127.0.0.1 ismaster:{ismaster:true、maxBsonObjectSize:16777216、ok:1.0}
月10月7日10:03:44レプリカセット127.0.0.1のレプリカセットモニターが開始されました。アドレスは127.0.0.1/
月10月7日10:03:44 [ReplicaSetMonitorWatcher]開始[127.0.0.1/development:27017]に接続できませんでした127.0.0.1/development:27017の設定に失敗しました

mongo -u -p ip/developmentを使用してmongoデータベースに接続できることを確認しました

最終的な目標は、運用データベースからデータをダンプし、ステージングデータベースに保存することです。これらの2つのデータベースは両方とも同じボックスにありますが、違いがある場合は、テスト目的で開発テストデータのバックアップを取得しようとしています。

34
awestover89

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

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

mongodump --Host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1
56


これは私のために働いた。

リファレンス: 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
14
Yves

Mongodumpで--uriを使用できます

mongodump --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" --out "C:\Umesh"

すべてのコレクションはoutフォルダー内に保存され、データベース名としてディレクトリ名が作成され、すべてのコレクションはbsonであり、メタデータはjson形式で保存されます。

復元用

mongorestore --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" -d dbname mongodbumppath

これを試してみてください。

5
Umesh Perl...
mongodump --Host remotehostip:port --db dbname -u username -p password
2
codewarrior

ノードサーバーからローカルマシンにコレクションをエクスポートする例を次に示します。

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”
1
abhi12335

Gzipを使用して、1つのコレクションのバックアップを作成し、その場でバックアップを圧縮することもできます

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

または、ファイル名に日付がある場合:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
0
Ravi Tyagi