mongodb - 来自远程服务器的 Mongodump

我们最近将一些数据移植到了 MongoDB,现在正在考虑运行每日备份,最好是从 cron 作业,并将其中一个备份恢复到辅助 mongo 数据库。

我们的系统设置如下:

  • 服务器 1:开发 mongo 数据库
  • 服务器 2:两个 mongo 数据库,一个用于暂存数据,一个用于生产
  • 服务器 3:是我们运行所有 cron 作业/批处理脚本的地方。

我检查了 mongo 文档,并登录到我们的 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 starting new replica set monitor for replica set 127.0.0.1 with seed of development:27017
Mon Oct 7 10:03:42 successfully connected to seed development:27017 for replica set 127.0.0.1
Mon Oct 7 10:03:42 warning: node: development:27017 isn't a part of set: 127.0.0.1 ismaster: { ismaster: true, maxBsonObjectSize: 16777216, ok: 1.0 }
Mon Oct 7 10:03:44 replica set monitor for replica set 127.0.0.1 started, address is 127.0.0.1/
Mon Oct 7 10:03:44 [ReplicaSetMonitorWatcher] starting couldn't connect to [127.0.0.1/development:27017] connect failed to set 127.0.0.1/development:27017

我确认我可以使用 mongo -u -p ip/development

连接到 mongo 数据库

我们的最终目标是从生产数据库中转储数据并将其存储在临时数据库中。这两个数据库都位于同一个盒子上,如果这有区别的话,但出于测试目的,我只是想获得开发测试数据的备份。

最佳答案

mongo 客户端可以解析MongoDB connection string 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

https://stackoverflow.com/questions/19228474/

相关文章:

mongodb - 如何获取 MongoDB 中单个索引的大小?

mongodb - Mongo复杂排序?

mongodb - 获取文档的特定部分

mongodb - Mongo ids 导致可怕的 URL

mongodb - MongoDB中count()和find().count()的区别

javascript - 多个填充 - Mongoose js

java - (MongoDB Java) $push 入数组

mongodb - 在 MongoDB 中,如何使用 $set 更新嵌套值/嵌入文档?

mongodb - mongodump 忽略一些指定的集合

mongodb - 仅当 MongoDB 文档字段不存在时,如何更新它们?