草庐IT

mongodb - 使用 Java (Windows) 连接到在 Docker 中运行的 MongoDB 副本集

我想用docker设置一个MongoDB副本集。设置似乎没问题,但我无法使用我的Java应用程序连接到集群。我在Windows10上以VirtualBox作为驱动程序运行Docker版本17.06.0-ce。我按照本教程中的说明进行操作:http://www.sohamkamani.com/blog/2016/06/30/docker-mongo-replica-set/所以我首先在docker中创建了my-mongo-cluster网络,并使用以下命令运行3个容器:$dockerrun--namemongo1-d--netmongo-cluster-p9042:27017mongo:

php - 何时查询 Mongodb 的副本集

我很难理解的一件事是,在设置我们当前的Mongo配置时,我们目前有两台带有仲裁器的服务器。现在首先我在master上创建了一条记录;去了中学然后试图找到它,我收到的错误看起来像:error:{"$err":"notmasterandslaveok=false","code":13435}在mongo的网站上阅读关于SlaveOK的信息后我发现在辅助服务器上我需要设置rs.slaveOk();但是,我并不完全理解为什么在查询服务器时我会在PHP中执行此操作;或者如果我误解了这一点。基本上我有一个服务器池,我正计划这样连接到它们:$m=newMongo("mongodb://localho

MongoDB 作为 Windows 服务并设置 replicaSet

我已经安装了MongoDB并将其设置为Windows服务。当我尝试设置replicaSet时出现错误“通常只允许每个套接字地址(协议(protocol)/网络地址/端口)使用一次。对于套接字:0.0.0.0:27017”。所以,我已经停止了windows服务并设置了replicaSet。replicaSet现在工作正常。但是,我没有看到Windows服务启动和运行。这是否意味着我不能同时设置replicaSet和MongoDB服务? 最佳答案 您可以在Windows上同时设置副本集和MongoDB服务。由于您已经设置了一个副本集,因

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 - 在 mongodb 中是否有性能原因将集合分成多个而不是数据库?

我有一个使用MongoDB数据库的应用程序,我将要添加自定义分析。是否有理由使用单独的数据库进行分析,还是我最好在应用程序数据库中构建它? 最佳答案 以下是我能想到的原因:生产集合和分析集合之间的名称冲突您需要不同的副本集配置进行分析您需要不同的分片配置进行分析您希望某些数据使用不同的物理介质(例如,快速磁盘上的生产数据、慢速磁盘上的分析)从Mongo2.2开始,“全局写锁”将成为每个数据库的锁,因此不同的数据库会将分析流量与生产流量隔离得更多一些。除非此列表中的某些内容适用于您,否则您无需将它们分开。此外,在MongoDB中跨数据

mongodb - MongoDb 中开发团队的生命副本

问:对于用于测试和开发的生命副本,哪种架构是最好的?当前设置:我们有两个这样的amazon/EC2mongod服务器:MachineA:Aproductiondatabase(onanamazon/EC2server)(nameit‘PROD’)Otherdatabases(‘OTHER’)MachineB:apre-productiondatabase(nameit‘PRE’)acopyfordeveloper1owntests(callit‘DEVEL-1’)acopyfordeveloper2(DEVEL-2)…DEVEL-nPRE数据库用于在部署到生产环境之前进行集成测试。DE

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 - 我怎么知道 MongoDB 恢复何时结束

根据标题,我有一个包含1个主节点、1个辅助节点和1个仲裁节点的副本集,我在主数据库中恢复了一个大数据库,它比辅助实例快得多。现在次要滞后了很多(小时),并且从几个小时开始就处于恢复状态。我可以做些什么吗?我可以知道恢复进度吗? 最佳答案 我先回答你的第二个问题。“我能知道恢复进度吗?”是的,您可以连接到副本集主并执行rs.status()命令来查看RS中每个成员的状态。请参阅输出的stateStr字段,它将指示状态代码的友好名称。这表明恢复的进展。但是在您的标题中,您询问是否可以知道它何时结束。这要难得多。无法“准确”知道辅助成员何

java - 并发 findAndModify 查询成功更新同一文档

我有一个用Java编写并使用MongoDB3.4副本集的任务worker,该副本集运行许多线程,每个线程基本上都在执行此操作。运行任务通过在MongoDB中更新该任务的文档来表示任务已完成运行查询以查看是否完成了这组任务中的所有任务如果是,继续下一阶段的处理否则什么都不做如您所见,这里存在竞争条件;多个任务几乎可以同时完成,并认为它们是最后一个要完成的任务。我想使用MongoDB来确保只允许其中一个任务开始下一阶段的处理。我有以下代码,旨在确保这些任务中只有一个可以继续(我正在使用Jongo与MongoDB交互)。Chipsetmodified=chipsets.findAndModi

mongodb - 使用 Morphia 测试 MongoDB 集群

我一直在副本集配置中试用MongoDB,以了解它如何扩展/执行/应对。我一直在使用Morphia(Mongo'sJavadrivers之上的POJO映射层)将10,000个简单的随机文档保存到单个集合中。我已经用@Entity(concern="REPLICAS_SAFE")注释注释了我的POJO(下面代码段中的MyData),希望发送到数据库的数据将安全地持久化。我的POJO由ObjectId字段(Mongo的主键类型)、一个随机长度的随机字符(最多20个字符)的String和一个组成>long使用Random.nextLong()生成。我的代码如下:for(inti=0;i我设置了