美文网首页
MongDB翻译:碎片

MongDB翻译:碎片

作者: ChanZeeBm | 来源:发表于2018-03-03 01:52 被阅读0次

原文

集群里的单个碎片保存了总数据的一个子集,集群里的所有碎片所持有的子集就是总数据。

在MongDB3.6版本里,为了冗余性和高可靠性,单个碎片必须是一个副本集。

用户,客户端,应用应该直接连接到碎片执行维护操作。

在单个碎片里执行查询只会返回一部分数据。连接到mongos来执行集群级别的操作,包括读写操作。

重要:MongDB不保证单个碎片存在两个连续的块。

主碎片

每个在集群里的数据库都有一个 primary shard持有该数据库没碎片化的集合。每个数据库都有自己的primary shard。primary shard 跟副本集的 primary没有任何联系。

当通过持有数据量最少的碎片创建数据库的时候,mongos会使用primary shard。mongos使用listDatabase命令返回的totalSize字段来作为一部分的选择标准。
[图片上传失败...(image-257913-1520013137947)]

使用 movePrimary命令来改变数据库的primary shard。完成迁移primary shard需要消耗大量时间,并且在迁移完成前你不应该访问数据库的集合。根据被迁移的数据量,迁移可能会对集群里的整体操作造成影响。在尝试更改primary shard前,应该从分考虑到网络畅通性和对集群操作的影响。

以前是一个副本集,现在你的碎片建立在该副本集之上且把该碎片加入到集群里的时候,所有已经存在的数据库继续运行在当前的副本集里。以后创建的数据库可能会存在于集群里的其他任何碎片中。

碎片状态

在mongo shell运行sh.status()方法可以查看当前集群的大概情况。其中包括了哪个碎片是当前数据库的primary shard,还可以看到碎片里的chunk描述。

集群安全性

使用 Internal Authentication来确保内部集群的安全性和避免无效用户访问集群。为了集群的内部身份验证,您必须在集群中使用适当的安全设置启动每个mongod。

碎片的本地用户

每个碎片都支持s Role-Based Access Control (RBAC) 来限制未认证的用户访问和操作碎片。启动每个mongod实例的时候指定 --auth选项来强制开启RBAC。另外,未用户开启 Internal Authentication同时也会开启RBAC。

每个碎片都有自己的本地用户。这些用户不能用于其他碎片上,也不能用来连接mongos.

相关文章

  • MongDB翻译:碎片

    原文 集群里的单个碎片保存了总数据的一个子集,集群里的所有碎片所持有的子集就是总数据。 在MongDB3.6版本里...

  • MongDB翻译:mongos

    原文 mongos 查询与写入操作利用MongoDB的mongos实例在集群中进行路由。从应用程序的角度来看,mo...

  • 翻译:MongDB读取

    原文 本页内容 Use Cases Read Preference Modes maxStalenessSecon...

  • PHP7之Mongodb的开发详解

    1.mongdb的连接 2.mongdb的添加 3.mongdb的删除 4.mongdb的修改 5.mongdb的...

  • 2019-04-15 mongdb和mysql的区别 mongd

    mongdb 和 mysql的应用场景,为什么mongdb有哪些优势mongb优点:mongdb 适合于热数据的读...

  • 数据库资源

    oracle mysql mongdb

  • MongoDB

    mongodb和python交互 1.mongdb和python交互的模块: pymongo提供了mongdb和p...

  • 【mongDB】mongDB高手课

    OLTP与OLAP的关系是什么? https://www.zhihu.com/question/24110442/...

  • mongodb——1

    1.Mongdb (1)MAC 启动 $ mongdb(2)Linux 启动 (2)使用 1.查看数据库$ sho...

  • MongDB

    MongoDB 是一款开源的文档数据库,并且是业内领先的 NoSQL 数据库,用 C++ 编写而成。MongoDB...

网友评论

      本文标题:MongDB翻译:碎片

      本文链接:https://www.haomeiwen.com/subject/tagzxftx.html