美文网首页
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翻译:碎片

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