当前位置: 首页 > 知识库问答 >
问题:

来自远程服务器的Mongodump

丁文轩
2023-03-14

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

我们的系统设置如下:

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

(我尝试了将用户名和密码连接到主机,但没有将用户名和密码连接到主机)

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
Mon-Oct 7 10:03:42已成功连接到种子开发:27017,用于副本集127.0.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/开发:27017]连接未能设置127.0.0.1/开发:27017

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

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

共有3个答案

贺博厚
2023-03-14

这对我有用。

参考: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
薄欣怿
2023-03-14

您可以通过--uri

mongodump --uri "mongodb://usersname:password@127.0.0.1:27100/dbname?replicaSet=replica_name&authSource=admin" --out "C:\Umesh"

所有集合都将存储在out文件夹中,它将创建目录名作为数据库名,所有集合都是bson,元数据将存储为json格式。

恢复

mongorestore --uri "mongodb://usersname:password@127.0.0.1:27100/dbname?replicaSet=replica_name&authSource=admin" -d dbname mongodbumppath

试试这个,会有用的。

劳彦
2023-03-14

mongoclient可以解析MongoDB连接字符串URI,因此您可以传递单个连接字符串URI,而不是单独指定所有连接参数。

在您的情况下,您试图将连接URI作为主机传递,但127.0.0.1/development不是有效的主机名。这意味着您应该将数据库参数与主机分开指定:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1
 类似资料:
  • 我正在用ApacheKafka版本(2.1.0)开发一个流式API。我有一个Kafka群集和一个外部服务器。外部服务器将生成要在Kafka群集上使用的数据。 让我们将外部服务器表示为E,将集群表示为C。E没有安装Kafka。我在上面运行一个JAR文件来生成消息。以下是Producer属性的代码段: 我将bootstrapIp设置为Kafka代理IP。 在集群端,我使用以下命令启动使用者控制台: 我

  • 我正试图通过bitbucket管道自动将我的应用程序部署到数字海洋。以下是部署的步骤: 使用ssh连接到远程数字海洋水滴 通过使用ssh运行git克隆来克隆我的存储库 使用docker-compose启动我的应用程序 我已经成功地设置了对远程的ssh访问。我还配置了对存储库的ssh访问,并且可以从远程服务器成功执行git克隆。但是,在管道中,当与远程服务器的连接成功时,git克隆命令失败,出现以下

  • 下面尝试过,但是直到并且除非我使Acyah geShipmentIn绑定节点为空(删除释放ID="9.2"xmlns="http://schema.infor.com/InforOAGIS/2"xmlns: xs="http://www.w3.org/2001/XMLSchema")选择查询不获取值。

  • 尝试远程启动服务时遇到奇怪的行为。 编辑:我进一步研究了这个问题,发现只有在尝试运行我的特定服务时才会出现这种情况。这意味着我的服务必须从已经登录的用户的会话中运行(这就是为什么如果我之前使用mstsc访问服务器,它仍然可以工作)。所以我想我的新问题是--有没有一种方法可以让我从PowerShell登录到远程机器? 多谢了。

  • 问题内容: 我正在使用JBoss运行客户端/服务器应用程序。 如何连接到服务器JVM的MBeanServer?我想使用MemoryMX MBean来跟踪内存消耗。 我可以使用JNDI查找连接到JBoss MBeanServer,但是java.lang.MemoryMX MBean没有在JBoss MBeanServer中注册。 编辑:要求是从客户端以编程方式访问内存使用情况。 问题答案: 与JBo

  • 我正在开发一个SMS应用程序,并在其中使用JMS。下面是一个简单的图表,显示了我将如何实现该应用程序: 所以基本上,最终用户通过主服务器发送SMS消息。主服务器将消息重定向到JMS服务器。JMS服务器接收消息并将其放入队列以立即或稍后处理。 我有几个关于设计的问题,关于实现JMS的正确方法是什么: 将ConnectionFactory放置在JMS服务器上是正确的,还是应该将其移动到主服务器上?或者