从远程服务器进行Mongodump

64
我们最近将一些数据迁移到了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为127.0.0.1的副本集监视器启动,种子为development:27017
Mon Oct 7 10:03:42成功连接到127.0.0.1的种子开发:27017,用于副本集
Mon Oct 7 10:03:42警告:节点development: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]连接失败,设置为127.0.0.1/development:27017
我确认可以使用mongo -u -p ip/development连接到mongo数据库。
我们的最终目标是从生产数据库中转储数据并将其存储在staging数据库中。这两个数据库都位于同一台机器上,如果有区别,但出于测试目的,我只是尝试获取开发测试数据的备份。

3
尝试将 --host 127.0.0.1/development 替换为 --host 127.0.0.1 -d development,这可能会解决你的问题。 - Leonid Beschastny
当我使用 mongo -u -p 连接时,我只是在主机后面添加了数据库名称。显然,这不是处理它的适当方式,至少对于 mongodump 来说是这样。有了这个更改,转储工作得非常完美。 - awestover89
12个回答

0

对于使用远程 Windows 服务器的单个集合,这对我非常有效。

mongodump --host <remote_ip> --port <mongo_port> --db <remote_db_name>  --authenticationDatabase <remote_auth_db> --username <remote_mongo_username> --password <remote_db_pwd> --out <local_DB_backup_folder> --collection <remote_collection_name>

0

这对我有用:

步骤1:导出远程/本地数据库。

mongodump --uri "mongodb+srv://USER:PASSWORD........." --out "/Users/Hardik/Desktop/mongo_bkp"

步骤2:导入

mongorestore ./mongo_bkp/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接