问题标签 [replicaset]
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.
mongodb - MongoDB 实例可以是多个副本集的成员吗?
我想知道是否有可能拥有一个属于两个副本集的 mongoDB 实例。
例如:ReplicaSet1 有成员 10.10.1.1 和 10.10.2.1 ReplicaSet2 有成员 10.10.1.1、10.10.1.2 和 10.10.1.3
mongodb - 在多个副本集实例 mongodb 上与同一用户连接
我是 mongodb 的新手,我正在研究一个分片集群。
我在连接副本集时遇到问题:
我有一个具有只读权限的用户,它是集群监视器并读取任何数据库。该用户是在 mongos 实例上创建的。
当我尝试使用此用户连接到副本集时,我无法验证自己,并且出现错误,例如我未注册。
所以我的问题是这正常吗?也许用户没有连接并且取决于您正在使用的实例。
如果有人知道答案,请告诉我,对不起我的英语,我还是个学生。
谢谢你。
mongodb - 如何从 mongos 中了解副本集状态
我正在尝试监视具有对 mongos 的完全只读访问权限的 mongodb 集群。
我今天的问题是我必须知道副本的确切状态。使用命令 shardConnPoolStats 我可以知道副本是主副本还是辅助副本,但我不知道如果副本出现故障或类似情况会发生什么。
所以我正在寻找一个可以在不连接到任何 mongod 的情况下告诉我的命令。
我不能自己尝试关闭副本并查看命令 shardConnPoolStats 是否显示此信息,因为我只有读取权限。
感谢您的阅读,我希望有人能快速回答。
mongodb - 使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?
使用 docker 和 fig 设置 mongodb 副本集的正确方法是什么?
我试图按照官方mongodb 教程创建一个fig.yml
包含一些副本集的文件,但总是被如何调用rs.initiate()
和rs.add("<hostname><:port>")
正确地阻止。
我找到了这个 SO 答案,解释了为什么我不能在shell
不调用的情况下从 开始一切rs.initiate()
,那么我该如何实现呢?
哦,我使用mongo:latest
(v2.6.5) 作为基础镜像,没有任何修改。
mongodb - 如何从 MongoDB MMS 门户将“arbiterOnly”设置为副本集中的现有节点?
我正在尝试使用 MongoDB MMS 服务在 Azure Cloud 中配置副本集。我创建了一个包含三个节点的副本集,一个作为主节点,两个从节点。如何使这些辅助节点之一成为任意节点?
mongodb - 复合唯一约束 mongoengine 不适用于复制集
我正在尝试使用 unique_with 参数对多个属性强制执行唯一约束。
这会在我的本地开发机器上创建索引。但除了 _id 上的默认唯一索引外,无法在生产环境中创建索引。
在开发环境中,我使用单个 mongo 实例,而在生产环境中,我使用 3 个实例的副本集(1 个主实例、1 个从属实例和 1 个仲裁器)。
我还尝试通过以下代码手动创建索引:
我不确定我在这里做错了什么,或者我的代码中有错误。任何帮助都会很棒。
还有一条信息:django 应用程序正在使用相同的副本集,它能够创建复合索引。所以我认为副本集配置没有问题。
mongodb - 无法在副本集中的辅助节点上使用 mongoose .populate
我有一个 mongoose find() 查询,然后我想在其中使用 .populate 来填写一些交叉引用。我正在对 mongo 副本集的辅助节点运行它。我可以很好地针对主服务器运行查询,并且可以使用记录的读取首选项对辅助服务器运行“正常”查找和聚合查询(没有填充)。
添加 .populate() 行时我卡住了。我收到以下错误:
{ [MongoError: not master and slaveOk=false] name: 'MongoError' }
定义了适当的模式,等等,并且带有 .populate 行的查询对主节点运行良好。只是不针对辅助节点(尽管同样,没有 populate() 行的相同查询对辅助节点正确运行)。有任何想法吗?谢谢!
mongodb - mongodb 密钥文件和 -auth
我正在尝试学习 mongoDB 副本集。现在我有三台服务器:一台作为主服务器,一台作为辅助服务器,最后一台作为仲裁服务器。我被告知要构建一个密钥文件并将其用于 mongod 启动命令。那么,这个密钥文件到底有什么作用呢?我不明白密钥文件所扮演的角色。而且,当我使用这个密钥文件时,它会自动打开 -auth 吗?我是否必须创建一个新用户并对其进行身份验证?如果我必须执行此操作,我应该在哪台机器上执行此操作?
ruby-on-rails - 一个节点关闭时使用 mongoid 对副本集响应缓慢
我有一个由 3 个 MongoDB 节点(10.66.5.3、10.66.5.4、10.66.5.5)组成的集群,当所有节点都处于活动状态并且正在运行时,它都运行顺利。
现在,当我任意关闭一台机器时,在通过mongoid
gem 访问副本集时,所有数据库查询都有一些高延迟(10 秒)。使用 CLImongo
工具时查询运行良好。该rs.status()
命令立即返回正确的信息,所以我相信它的 mongoDB 端配置正确。
从pry
控制台运行命令会产生相同的 10 秒延迟。有时查询会在点击 web api 时失败,但我认为这只是超时杀死查询。
这是应用程序的 mongoid.yml。
如果感觉好像代码每次都在检查集群的状态并在死节点上浪费时间。我做错了什么,我错过了配置选项吗?
我尝试将refresh_interval: 10
(建议在一些在线资源中)添加到集群选项,但它没有做任何事情。
延迟始终是 10 秒,所以我相信可能有一个设置在做一些讨厌的事情。
有什么想法吗?
软件:
- 红宝石 (2.1.5p273)
- 导轨 (4.1.6)
- mongoid (4.0.0)
- 助力车 (2.0.0)
php - Mongo replset 从 php 连接非常慢
我在连接到副本集(4 db + 1 arbiter)时遇到问题。
基准:
结果(php microtime(true)中的时间):
为什么连接到副本集需要这么长时间?(每个连接 1 秒)