草庐IT

主从分片

全部标签

spring - 使用 spring mongo 进行分片

我正在使用mongoDB通过springweb应用程序存储和查询近5000万条记录(没有固定模式的大型Json文件)。基于简单K-V对的查找查询需要几秒钟。我正在寻找将搜索时间缩短到由于存储文件的性质,索引对我不起作用。我正在寻找替代方案并遇到了分片。但是,我找不到很好的教程来解释如何为我现有的spring-mongo应用程序设置分片。有人可以指点我一个好的解释吗?也欢迎任何其他优化搜索时间的建议!编辑根据评论,我将现有的Mongo数据库转换为一个分片数据库,其中包含1个配置服务器、1个查询服务器和2个分片。以前我的(spring-boot)application.properties

spring - 使用 Spring Data MongoDB 指定分片集合

我正在使用SpringBoot和SpringDataMongoDB来连接底层的分片MongoDB集群。我的SpringBoot应用程序通过mongos路由器访问集群。使用SpringDataMongoDB,您可以通过@Document(collection="nameOfCollection")指定对象持久化到的集合,或者默认为类名(首字母小写)。这些集合不需要预先存在;它们可以在运行时创建。要在MongoDB中对集合进行分片,您需要1-在数据库上启用分片:sh.enableSharding("myDb")2-在分片数据库上分片集合:sh.shardCollection("myDb.m

java - Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

我在数据库中有一个集合“documentDev”,分片键为“dNumber”示例文档:{"_id":"12831221wadaee23","dNumber":"115","processed":false}如果我尝试使用类似命令的任何查询工具更新此文档-db.documentDev.update({"_id":ObjectId("12831221wadaee23"),"dNumber":"115"},{$set:{"processed":true}},{multi:false,upsert:false})}`它正确地更新了文档。但是如果我确实使用springboot的mongorepo

mongodb - 分片配置帮助

我是mongo-db的新手,我尝试按照mongo-db网站中的过程配置分片。但是我遇到了一些错误......我将描述我的步骤接下来是配置分片……我试过在windows-os中分片……第一步:*)在第一台机器上,我在以下路径中创建了两个文件夹c:/data/db/a;c:/data/db/config*)现在我打开命令提示符并使用以下命令配置分片服务器......C:/ProgramFiles/mongodb-win32-i386-1.6.2/bin/mongod--shardsvr--dbpathc:/data/db/a--port10000第2步:*)在第二台机器上,我在以下路径中创

mongodb - 分片在集群中不均衡

我有2个碎片。一个是独立服务器,另一个是副本集:mongos>db.runCommand({listshards:1}){"shards":[{"_id":"shard0000","host":"mongo3:10001"},{"_id":"set1","host":"set1/mongo1:10001,mongo2:10001"}],"ok":1}我已经插入了大约3000万条记录。据我所知,mongo应该平均平衡分片之间的数据,但它并没有发生:mongos>db.stats(){"raw":{"set1/mongo1:10001,mongo2:10001":{"db":"my_gin

Mongodb - 分片 - 同时添加多个分片

我有一个带有4x分片的生产mongodb部署(3.6),它运行良好。我想向集群中添加4倍以上的分片。一次添加多个分片是否可以,或者这会引起戏剧性事件吗?我发现添加分片是一项昂贵的操作,在我看来,同时添加分片可以避免来回传输数据,从而提高性能。谢谢, 最佳答案 当您添加分片时,所有分片集合都需要重新平衡它们的数据,这意味着移动block直到所有分片具有大致相同数量的block。过去(3.4之前)在block迁移方面没有并行性,但是现在集群上可以发生的并行迁移的数量与集群中的分片数量直接相关。来自3.4补丁说明:forashardedc

php - 如何使用 PHP 配置 MongoDB 分片?

我正致力于在EC2上设置MongoDB副本集。我想配置自动分片,以便我的节点可以轻松地启动和关闭。是否可以使用原生的PHP驱动来触发分片和添加/删除节点?如果是,怎么办? 最佳答案 假设您与mongos的连接正确,您可以使用MongoDB::command()方法:$mongo->selectDB('admin')->command(array('addshard'=>'hostname:port')); 关于php-如何使用PHP配置MongoDB分片?,我们在StackOverflo

mongodb - 如何对 mongoDB 上的集合进行分片?

我在mongodb上创建了一个集合,该集合在错误的键上进行了分片。我想删除我的集合并重建它,以便它在正确的键上进行分片。不幸的是,执行db.removeCollection('mycollection')会删除数据,但不会删除一些元数据信息。db.printShardingStatus仍然显示我错误地用于mycollection的分片信息,如果我再次创建该集合,我将无法使用新的好key对其进行分片,因为它显示“已经分片”。有什么解决办法吗?谢谢托马斯 最佳答案 如果您查看此JIRA票证,其中有关于如何在mongoDB中安全地取消分片

mongodb 分片 - block 的大小不同

我刚接触mongodb。由于我必须存储+-5000万份文档,我不得不设置一个带有两个副本集的mongodb分片集群文档看起来像这样:{"_id":"predefined_unique_id","appNr":"abcde","modifiedDate":ISODate("2016-09-16T13:00:57.000Z"),"size":NumberLong(803),"crc32":NumberLong(538462645)}分片键是appNr(之所以选择是因为出于查询性能的原因,所有具有相同appNr的文档都必须留在一个block中)。通常多个文档具有相同的appNr。加载大约20

mongoDB 分片示例

在Windows上使用mongo2.0.132位的新手尝试测试分片如下:(4)processes:2shards+configsrver+mongoswtinychunksizemongod.exe--shardsvr--port10001--dbpath>shard1.logmongod.exe--shardsvr--port10002--dbpath>shard2.logmongod.exe--configsvr--port20000--dbpath>config.logmongos.exe--configdblocalhost:20000--chunkSize1>mongos.l