• Mongodb 学习笔记7:分片


    分片:将数据拆分,将其分散存在不同的机器上的过程。类似数区表。

    客户端应用程序不必知道哪片对于哪些数据。分片之间要运行一个路由进程(mongos)。它知道所有数据的存放位置。

    片键:分片时,用于数据拆分的键。片键选择和创建很像索引。

    分片主要组成部分:

    • 片:保存子集合的容器,可以是单个mongod服务器也可以是副本集,即使一个片内有多个服务器,也只能有一个主服务器,其他的服务器保存相同的数据。
    • mongos:路由器。它路由所有请求,然后将结果聚合。本身不存储数据或者配置信息。
    • 配置服务器:存储集群的配置信息:数据和片的对应关系。mongos会从配置服务器获取同步数据。

    设置分片

    • 开启config服务器,mongos要把mongod之间的配置放到config服务器里面,因最先开启,方法同普通mongod一样。

    • 开启mongos服务器:开启的是mongos,不是mongod,同时指定下config服务器

    • 启动mongod服务器, 对分片来说,也就是要添加片了,这里开启E,F盘的mongodb,端口为:4444,5555。

    • 服务配置
    1. 连接mongos路由,添加分片addShard()。
    2. 在mongodb中设置片键:                                                                                                      ①:开启数据库分片功能,命令很简单 enablesharding(),这里我就开启test数据库。                        ②:指定集合中分片的片键,这里我就指定为person.name字段。


    查看分片效果     

    连接mongos路由服务器,分片信息主要存放在config数据库上:

    片  >db.shards.find()

    数据库 >db.databases.find()

    块   >db.chunks.find()

    通过db.printShardingStatus()查看上述信息:

    先插入100000条记录,在查看分片信息:

    可以知道:已经别分为两个片了,shard0000和shard0001。

                  集合被分为三段:无穷小 —— lucy0,lucy0 ——lucy9999,jlucy9999——无穷大。

    删除分片:会把给定片上的所有块都挪到其他片上。

    >db.runCommand({"removeshard":"localhost:4444"});

  • 相关阅读:
    根据自己的博客数据统计国内IT人群
    使用dropwizard(5)--加入swagger
    使用dropwizard(4)-加入测试-jacoco代码覆盖率
    使用dropwizard(3)-加入DI-dagger2
    收藏博客
    IntelliJ IDEA 下载安装(含注册码)
    fontawesome图标字体库组件在服务器上显示不出来图标的解决
    MySQL DBA工作角色和职责介绍
    MySQL主主复制(双主复制)配置过程介绍
    MySQL表与表之间的SQL Joins图介绍
  • 原文地址:https://www.cnblogs.com/lucyawei/p/3057069.html
Copyright © 2020-2023  润新知