问题标签 [mongodb-replica]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1012 浏览

node.js - 本地mongo停止时Express无法连接到mongodb副本集

我有mongodb replica set以下配置:

  • M1 (192.168.77.3) 主(主机 App1)
  • M2 (192.168.77.4) 辅助(主机 App2)
  • M3 (192.168.77.5) 辅助(主机 App3)
  • M4仲裁员

这是我连接到数据库的 Express 代码(我mongoose用作 ODM):

该应用程序按预期工作。当 M1 关闭时,M2 或 M3 被选为primaryApp2并且App3仍在工作,但App1CAN'T 无法连接到replica set并显示错误消息:

这是我的 mongodb 配置App1

我的配置有什么问题吗?

0 投票
2 回答
1270 浏览

mongodb - 如何在 mongoDB 复制集中添加成员?

我正在使用rs.initiate()命令配置复制,然后在我尝试使用将成员添加到我的服务器 IP 地址之后,rs.add(xxx.xxx.xxx.xxx:27017)但它返回这样的错误。

{ "ok" : 0, "errmsg" : "Quorum check failed 因为没有足够的投票节点响应;需要 2 但只有以下 1 个投票节点响应:xxx.xxx.xxx.01:27017;以下节点没有肯定响应: xxx.xxx.xxx.02:27017 失败,服务器最小和最大线版本不兼容 (0,5) 与客户端最小线版本 (6,6)", "code" : 74, "codeName" : "NodeNotFound" , "operationTime" : Timestamp(1516699107, 1), "$clusterTime" : { "clusterTime" : Timestamp(1516699107, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId " : NumberLong(0) } } }

请给我解决方案。

谢谢!

-卡姆迪普·乔希

0 投票
1 回答
1501 浏览

mongodb - 尝试连接mongodb单节点副本集超时异常

任何关于错误的想法将不胜感激。谢谢!

服务器以以下标志启动

应用代码

例外

0 投票
1 回答
427 浏览

mongodb - MongoDB 集群分片,没有主,只有一个辅助活动

我的 MongoDB Sharded Cluster 有 3 个分片,每个分片在 3 个副本上运行。总结一下:

如果看到上面的状态,问题就出在SHARD2.

  • 没有主要在SHARD2
  • 副本集配置如何标记shard23.server.com为非成员

辅助shard21.server.com可用于获取转储,因此可能不会丢失数据。但是,我对如何再次稳定集群一无所知?

如何SHARD2从集群中完全删除?或者我应该如何再次使用相同的服务器重新初始化分片?

0 投票
0 回答
57 浏览

mongodb - 副本仲裁器集

我需要更改我的仲裁器,因为 AWS 正在停用我的 ec2 实例“正在停用:此实例计划停用......”

所以我需要更改我的仲裁服务器,我创建了一个新服务器,添加了该服务器中存在的所有内容,因为我已经为此保存了 AMI。

对于更改副本集成员,我使用 MongoDB 官方文档中提到的 javascript slice 方法在新变量中设置配置

从新变量中删除成员

然后使用以下命令覆盖副本集配置文档:-

一切都与重新配置有关,首先当我添加为 ARbiter 时显示 OTHER,然后当我在 arbiter 服务器中登录 mongodb 时,它也显示 ARBITER,因此这意味着新的 ARBITER 已成功设置。但为什么它的节目在

0 投票
1 回答
417 浏览

mongodb - 更改流副本集的 MongoDB 批量读取实现问题

问题:
推理生成过程每秒将大约 300 个推理数据写入 MongoDB 集合。另一个进程利用 MongoDB 的更改流特性来回读这些推论并进行后处理。目前,调用变更流函数API(mongoc_change_stream_next())时只返回一个推理数据。因此,总共需要 300 次这样的调用才能在 1 秒内获取存储的所有推理数据。但是,每次读取后,需要大约 50ms 的时间来对单个/多个推理数据进行后处理。由于单一数据返回模型,引入了 15 倍的有效延迟。为了解决这个问题,我们正在尝试实施批量读取机制符合 MongoDB 的更改流功能。我们尝试了各种选项来实现相同的功能,但在每次更改流 API 调用后仍然只获得一个数据。有没有办法解决这个问题?

平台:
操作系统:Ubuntu 16.04
Mongo-c-driver:1.15.1
Mongo 服务器:4.0.12

尝试的选项:
将光标的批量大小设置为大于 1。

0 投票
0 回答
64 浏览

mongodb - mongodb 副本集设置本地,初始用户不是使用 docker-compose 脚本创建的

不知道我在这里做错了什么,但是在仍然从我的 mongo-init.sh 脚本创建初始用户的同时,我无法进行密钥文件身份验证。一旦我添加了 keyfile 选项,该部分就可以工作,但是没有创建带有 appUser 的管理数据库。我一定错过了一些微妙的东西,因为有那么一刻,这一切都奏效了!也许这是在数据库已经处于再次执行时使事情正常的状态之后再次尝试脚本的结果......谢谢!

我的密钥文件是这样生成的:

我的 docker-compose.yml 文件:

mongo-init.sh 文件:

0 投票
0 回答
142 浏览

mongodb - 如何初始同步 mongo 副本

mongo slave的死了,因为它由于空间不足而意外停止并且由于以下原因而无法启动

我尝试通过以下建议修复错误:

https://askubuntu.com/questions/823288/mongodb-loads-but-breaks-returning-status-14

但它导致下一个错误代码:

我试图通过以下方式修复

这是它的日志输出

该命令sudo service mongodb start不起作用,因为状态命令显示服务已死。

在此处输入图像描述

我发现从头开始重新同步数据会更容易。我找到了文档

https://docs.mongodb.com/manual/tutorial/resync-replica-set-member/#resync-a-member-of-a-replica-set

但我不完全知道运行什么命令来执行此操作。

我的 dbPath = "/mnt/mongo/mongodb",MongoDB shell 版本 v3.4.14,我的数据库大约有 2.5T。你能给我一些指导如何执行初始同步 mongo 副本吗?

据我了解,我应该

  1. sudo rm -r /mnt/mongo/mongodb/*
  2. sudo service mongodb start
  3. 一段时间后,一切都应该恢复正常(?)

如果我错了,请纠正我...