草庐IT

副本集

全部标签

java - 具有自动更新和 MongoDB 副本集的应用程序

我目前正在为我们的应用程序提供高可用性功能。我们的应用程序具有自动更新功能(使用Mongeez),可确保所有数据库/集合/文档的结构都采用适合该应用程序版本的正确格式。问题是我很难解决复制和版本控制问题。我将使用以下示例来更好地说明问题。我需要在不停机的情况下将两台服务器上的应用程序X更新为应用程序X2.0,因此我执行以下操作:停止应用程序XA在服务器A上安装2.0版本启动应用程序X2.0A应用程序X2.0A自动将MongoDB更新为2.0格式由于我们使用的是MongoDB副本集,它会自动传播所有MongoDB实例中的更改问题!!!...应用程序XB仍在运行1.0版,但它使用的是2.0

mongodb - 不可达/健康的副本集

我正在尝试在现有集合中再添加一个副本集,但在可达性方面遇到了问题。我们得到Notreachable/healthy副本集的原因是什么?"name":"IPADDRESS","health":0,"state":8,"stateStr":"(notreachable/healthy)","uptime":0,"optime":{"t":0,"i":0},"optimeDate":ISODate("1970-01-01T00:00:00Z"),"lastHeartbeat":ISODate("2013-06-18T10:52:50Z"),"lastHeartbeatRecv":ISODat

mongodb - 配置 Mongo 副本集以仅复制某些集合

我有一个大约3GB的mongo数据库,其中包含几十个集合。其中三个集合每秒处理约300个查询,而其余的则维持低得多的数量。我预计流量会继续快速增长。我想设置一个副本集来处理高流量集合。这个新实例没有必要复制数据库的其余部分。这可能吗? 最佳答案 目前似乎无法通过mongodb的内置功能实现,唯一的办法是提出自己的手动复制算法或使用第三方编写的一些其他工具。https://github.com/wordnik/wordnik-oss根据以下帖子,该项目可能会帮助您实现这一目标。https://groups.google.com/for

mongodb - MongoDB java 驱动程序如何确定副本集是否处于自动故障转移过程中?

我们的应用程序是建立在mongodb副本集之上的。我想捕获副本集处于自动故障转移过程中的时间范围内抛出的所有异常。我将使应用程序重试或等待故障转移完成。这样故障转移就不会影响用户。我在这里找到了描述Java驱动程序行为的文档:https://jira.mongodb.org/browse/DOCS-581我编写了一个测试程序来查找所有可能的异常,它们都是MongoException但具有不同的消息:MongoException.Network:“对服务器/10.11.0.121:27017的读取操作在数据库测试中失败”MongoException:“找不到主人”MongoExcepti

MongoDB副本集没有primary,需要强制新建primary

我们有一个包含3个节点的mongoDB副本集;小学中学仲裁者不知何故,我们的副本集最终将1和2都设置为次要成员。我不确定这是怎么发生的(我们有一个服务器迁移,其中一个节点在上面运行,但只有一个)。无论如何,我一直在尝试按照指南here为副本集重新选择一个新的主节点。我不能只使用rs.reconfig(cfg)因为它只有在针对主要(我没有)时才有效。使用力参数rs.reconfig(cfg,{force:true})似乎可以工作,但是当我重新查询副本集的状态时,两台服务器仍然只显示为辅助服务器。为什么强制重新配置没有起作用?目前无论我尝试什么,数据库都被锁定。

mongodb - 锁定在 mongodb 副本集之外

我有一个包含3个成员的mongodb副本集(版本2.4),其中“admin”数据库的管理员用户没有“userAdminAnyDatabase”角色。需要此角色来管理所有数据库上的用户。我目前拥有的角色是:["readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin"]我尝试为自己更新角色或创建新用户,但我无权访问管理数据库中的db.system.users。我尝试设置noauth=true但这没有帮助。同样删除keyFile时,数据库无法与其他成员同步(很明显)并陷入恢复状态。我找到了一个similarquestion它指的是一个

mongodb - 如何使 MongoDB `repairDatabase` 和 `compact` 命令与副本集一起工作?停机时间还可以

我们需要释放一些MongoDB空间,我们确定了100Gb以上的文档可以安全地从集合中删除。因此我们将它们从具有此设置的测试环境中删除:mongodb版本3.0.1没有分片1个节点,无副本wiredtiger引擎完成后,我们发现磁盘上的空间仍在使用中,需要回收。我们找到了thispost它帮助了我们:在同时运行之后db.runCommand({repairDatabase:1})和db.runCommand({compact:collection-name})我们释放了100Gb以上。然后我们继续生产,忘记了设置是不同的,因为我们有1个副本节点:mongodb版本3.0.1没有分片1个主

mongodb - 将 Standalone 转换为副本集,不起作用

我需要将一个独立的转换为一个副本集我正在使用以下文档:http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/执行以下操作后:mongod--port27017--replSetrs0在终端中显示以下内容ThuNov1510:07:57[rsStart]tryingtocontactMY_HOST.local:27017ThuNov1510:07:57[rsStart]couldn'tconnecttoMY_HOST.local:27017:couldn'tconnecttoserverMY_H

通过js文件配置MongoDB副本集

我已经为MongoDB手动配置了一个副本集。一旦我在3个节点上启动了守护进程并且它们启动并运行后,我从我标识为“主要”的节点运行以下命令:mongo这将使我进入mongoshell使用管理员创建副本集配置:cfg={_id:'csReplicaSet',members:[{_id:0,host:'node1IpAddress:27017'},{_id:1,host:'node2IpAddress:27017'},{_id:2,host:'node3IpAddress:27017',arbiterOnly:true}]}rs.initiate(cfg)我想知道如何在mongo可以识别的J

带有副本集的 Mongodb 在 docker compose 中

我可以使用dockercompose.yml文件设置用户名、密码并创建数据库version:'3'services:mongodb:image:mongovolumes:-/home/temp/finalewd/temp:/var/lib/mongodbrestart:on-failureports:-"27017:27017"environment:MONGO_INITDB_ROOT_USERNAME:XXXXMONGO_INITDB_ROOT_PASSWORD:XXXXMONGO_INITDB_DATABASE:XXXX它会启动新的mongo容器,数据库为XXXX,配置用户名和密码