jjzjj

sharding

全部标签

mongodb - Docker mongo 分片

我正在尝试使用docker创建mongo分片.我有:配置服务器:dockerrun-it--rm--net=xnet-p27016:27016\--hostnamexmongo-config-1--namexmongo-config-1\-v$PWD/docker/.data/xmongo-config-1:/data/db\mongo:latest--port27016--replSetxmongo-config--configsvr和mongos(路由器)服务器:dockerrun-it--rm--net=xnet-p27015:27015\--hostnamexmongo-mon

MongoDB 分片 + 复制

我是MongoDB的新手,我想了解这两种技术如何协同工作:当为你的数据库使用复制时,你有一个主节点和一堆辅助节点。为了保证一致性,建议大家始终从主节点读取,对吧?因此,当您将复制与分片结合使用时:您在不同的服务器上有2个副本r1和r2,分区由1到250的id和2个分片组成,分片1有1-125,分片2有126-250。现在我的问题是:当使用分区和分片时,这意味着现在每个分片都有自己的主节点?那么当从id为130的文档中读取信息时,我必须首先找出分片2的主节点所在的位置?例如:r1有1-125的主节点和126-250的副节点r2有126-250的主节点和1-125的辅助节点对吗?每个副本仍

mongodb - 忘记了 mongodb 管理数据库凭据。重置一切

我忘记了我的管理员用户的凭据。因此我无法连接到集群mongoshell。现在我想删除所有用户和凭据,或者即使可以重置mongodb也会有很大帮助。我尝试了以下命令,但出现“需要身份验证错误”。db.createUser(),db.dropDatabase()。我希望使用凭据创建新的管理员用户。 最佳答案 您可以在此处登录您的Atlas集群来完成此操作:https://www.mongodb.com.然后,在左侧边栏上,单击“数据库访问”。您可以在那里管理用户,甚至可以删除他们并创建新用户。

mongodb - 为动态集合和设计建议自动定义分片键

我想为我的MongoDb实现分片,需要您的一些建议。洞察力我们有很多cron-job收集关于机器的各种信息并将它们写入它自己的集合。集合是动态创建的。每个集合都有数百万条数据。每个集合的结构1是名称、类别、子类别、NodeId、流程开始时间、流程结束时间、值。每个集合的结构2是名称、类别、子类别、子类型、日期、值。每个集合的结构3是名称、类别、子类别、NodeId、流程开始时间、流程结束时间、值、标志1、标志2、标志3。经过研究,我们发现我们将使用分片并使其适用于多个服务器,这保证了两件事:不用担心空间不足。跨服务器的平衡性能Question1:Myproblemistofindaco

MongoDB 使用了错误的索引

我无法理解这个问题-我有一个分片集群,其中一个分片(分片2)似乎使用了错误的索引。我通过分片键查询,即站点ID和首次请求时间{site.id:1,frt:1}。我还有一个关于站点ID和上次请求时间的索引。在此查询中,我还试图通过我在文档中设置的几个bool值来限制返回的文档。阅读有关Mongo的查询优化器如何工作的文档,我在查看返回的Explains时似乎特别奇怪。文档在这里:QueryOptimizer我还包含了来自分片1的解释,其中查询按预期返回。最后,如果我使用的站点ID没有存储在Shard2上的block,它会使用正确的索引,尽管它没有要扫描或返回的内容。为了完整起见,将对此的

mongodb - MongoDB Shard Key 是否需要唯一?

我在这个问题上有点挣扎,因为我来自SQL环境,我们在其中对用户ID进行了分片。我们有多个表,其中添加了user_id,以便我们可以分片。如果一个表中有100条记录,所有记录都针对同一用户,那么所有100条记录最终都会在同一个分片中。因此,我们有了第一个mongo数据库,我们希望能够在必要时对其进行分片。有一个用户collecton,我们打算按_id对其进行分片。没问题。但是还有第二个集合,其中可能包含一个用户的数百个文档。我们希望那些去同一个分片,(不必与用户文档相同,因为它们是单独检索的,但它们确实会被用户分块检索。)但看起来,如果我们按已添加到第二个集合的user_id进行分片,这

mongodb - MongoDB : Unable to create a sharding cluster in Ubuntu

我已经使用http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/安装了MongoDB在我的Ubuntu机器上,mongo实例工作正常。我可以在实例中进行CRUD操作。我还安装了MonjaDBeclipse插件,并且能够看到其中的所有数据库/集合/文档。现在,我想在我的机器上创建一个分片集群。我正在尝试以这种方式创建:cluster=newShardingTest({"shards":3,"chunksize":1})出现以下错误:重置数据库路径'/data/db/test0'2月12日星期三15:46:43错

MongoDB 在一台机器上按日期分片

我们从一个单一的mongodb开始,但没有一个集合增长到~300GB。该集合包含具有日期字段的对象。但大多数情况下,我们只需要查询最近的对象,然后查询历史一次。所以我的问题是:是否可以按日期字段在一台服务器上分片这个集合?更明确地说,我想将较新的对象分片到一个节点中,将较旧的对象分片到另一个节点中。而不是将所有对象平均分布在n个分片上。是否有关于如何将现有的单个数据库(没有任何副本集)分片成分片集群的教程? 最佳答案 从技术上讲,您不需要对内容进行分片,只需要为您的领域编制索引。是的,您可以在日期字段上创建索引,您可以通过访问查询计

Mongodb 分片集群 $in VS $or

如果我在分片键中有MongoDBshurded集群:“my_key”。我必须在具有不同my_key的集合包文档(大约10-500项)中找到。敌人的例子:db.test.find({my_key:{$in:[1,3,5,67,45,56...]}})Mongos知道带有“my_key”的block存储在哪里。mongos可以将我的查询拆分为小查询以准确存储文档的碎片吗?或者mongos会将此查询发送到所有分片?关于$or的同样问题db.test.find({$or:[{my_key:1},{my_key:3},{my_key:5}...]}) 最佳答案

mongodb - mongodb 中的主分片

我正在尝试阅读mongodb分片的文档,但我对主分片的分配方式和主分片的含义有些困惑根据文档统计Everydatabasehasaprimaryshardthatholdsalltheun-shardedcollectionsforadatabase.Theprimaryshardhasnorelationtotheprimaryinareplicaset.这是否意味着主分片是分片中首次创建数据库的分片(或服务器集合)?假设我有3个分片s0、s1和s2。在每个分片中我有3个服务器s0服务器1(主要)s0服务器2(辅助)s0-服务器3(辅助)s1-服务器4(主要)s1-服务器5(辅助)s