mongodb分片集群
<p><strong>mongodb分片集群</strong></p><p>Sharding cluster是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建。sharding分片很好的解决了单台服务器磁盘空间、内存、cpu等硬件资源的限制问题,把数据水平拆分出去,降低单节点的访问压力。每个分片都是一个独立的数据库,所有的分片组合起来构成一个逻辑上的完整的数据库。因此,分片机制降低了每个分片的数据操作量及需要存储的数据量,达到多台服务器来应对不断增加的负载和数据的效果。</p>
<p>1)Sharding分区概念</p>
<div class="cnblogs_code">
<pre><code class="bash plain">分片 (sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。</code></pre>
<div class="line number2 index1 alt1"> </div>
<div class="line number3 index2 alt2"><code class="bash plain">分片的基本思想就是:</code></div>
<div class="line number4 index3 alt1"><code class="bash plain">将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分。通过一个名为 mongos 的路由进程进行操作,mongos 知道数据和片的对应</code></div>
<div class="line number5 index4 alt2"><code class="bash plain">关系(通过配置服务器)。 大部分使用场景都是解决磁盘空间的问题,对于写入有可能会变差(+++里面的说明+++),查 询则尽量避免跨分片查询。使用分片的时机:</code></div>
<div class="line number6 index5 alt1"> </div>
<div class="line number7 index6 alt2"><code class="bash plain">使用场景:</code></div>
<div class="line number8 index7 alt1"><code class="bash plain">1)机器的磁盘不够用了。使用分片解决磁盘空间的问题。</code></div>
<div class="line number9 index8 alt2"><code class="bash plain">2)单个mongod已经不能满足写数据的性能要求。通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。</code></div>
<div class="line number10 index9 alt1"><code class="bash plain">3)想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。</code></div>
<div class="line number11 index10 alt2"> </div>
<div class="line number12 index11 alt1"><code class="bash plain">要构建一个MongoDB Sharding Cluster(分片集群),需要三种角色:</code></div>
<div class="line number13 index12 alt2"><code class="bash plain">1)分片服务器(Shard Server)</code></div>
<div class="line number14 index13 alt1"><code class="bash spaces"> </code><code class="bash plain">mongod 实例,用于存储实际的数据块,实际生产环境中一个 shard server 角色可由几台机器组个一个 relica </code><code class="bash functions">set</code> <code class="bash plain">承担,防止主机单点故障</code></div>
<div class="line number15 index14 alt2"><code class="bash spaces"> </code><code class="bash plain">这是一个独立普通的mongod进程,保存数据信息。可以是一个副本集也可以是单独的一台服务器。</code></div>
<div class="line number16 index15 alt1"><code class="bash plain">2)配置服务器(Config Server)</code></div>
<div class="line number17 index16 alt2"><code class="bash spaces"> </code><code class="bash plain">mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。</code></div>
<div class="line number18 index17 alt1"><code class="bash spaces"> </code><code class="bash plain">这是一个独立的mongod进程,保存集群和分片的元数据,即各分片包含了哪些数据的信息。最先开始建立,启用日志功能。像启动普通的 mongod 一样启动</code></div>
<div class="line number19 index18 alt2"><code class="bash spaces"> </code><code class="bash plain">配置服务器,指定configsvr 选项。不需要太多的空间和资源,配置服务器的 1KB 空间相当于真是数据的 200MB。保存的只是数据的分布表。</code></div>
<div class="line number20 index19 alt1"><code class="bash plain">3)路由服务器(Route Server)</code></div>
<div class="line number21 index20 alt2"><code class="bash spaces"> </code><code class="bash plain">mongos实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用</code></div>
<div class="line number22 index21 alt1"><code class="bash spaces"> </code><code class="bash plain">起到一个路由的功能,供程序连接。本身不保存数据,在启动时从配置服务器加载集群信息,开启 mongos 进程需要知道配置服务器的地址,指定configdb选项。</code></div>
<div class="line number23 index22 alt2"> </div>
<div class="line number24 index23 alt1"><code class="bash plain">片键的意义</code></div>
<div class="line number25 index24 alt2"><code class="bash plain">一个好的片键对分片至关重要。 片键必须是一个索引 ,通 过 sh.shardCollection 加会自动创建索引。一个自增的片键对写入和数据均匀分布就不是很好, 因为自增</code></div>
<div class="line number26 index25 alt1"><code class="bash plain">的片键总会在一个分片上写入,后续达到某个阀值可能会写到别的分片。但是按照片键查询会非常高效。随机片键对数据的均匀分布效果很好。注意尽量避免在多个分片上进行查询。</code></div>
<div class="line number27 index26 alt2"><code class="bash plain">在所有分片上查询,mongos 会对结果进行归并排序</code></div>
</div>
<p>水平数据分片</p>
<p><img src="https://img2020.cnblogs.com/blog/1339149/202008/1339149-20200817135318914-1243714113.png" alt="" width="558" height="498" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1339149/202008/1339149-20200817135424925-624252418.png" alt="" width="548" height="420" loading="lazy"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">分片集群主要由三种组件组成:mongos,config server,shard
</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">) mongos(路由进程, 应用程序接入 mongos 再查询到具体分片)
数据库集群请求的入口,所有的请求都通过 mongos 进行协调,不需要在应用程序添加一个路由选择器,mongos 自己就是一个请求分发中心,它负责把对应的数据请求
请求转发到对应的 shard 服务器上。在生产环境通常有多个 mongos 作为请求的入口,防止其中一个挂掉所有的 mongodb 请求都没有办法操作。
</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">) config server(路由表服务。 每一台都具有全部 chunk 的路由信息)
顾名思义为配置服务器,存储所有数据库元信息(路由、分片)的配置。mongos 本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储
这些数据。mongos 第一次启动或者关掉重启就会从 config server 加载配置信息,以后如果配置服务器信息变化会通知到所有的 mongos 更新自己的状态,这样
mongos 就能继续准确路由。在生产环境通常有多个 config server 配置服务器,因为它存储了分片路由的元数据,这个可不能丢失</span>!<span style="color: rgba(0, 0, 0, 1)">就算挂掉其中一台,只要还有存货,
mongodb 集群就不会挂掉。
</span><span style="color: rgba(128, 0, 128, 1)">3</span>) shard(为数据存储分片。 每一片都可以是复制集(replica <span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">))
这就是传说中的分片了。如图所示,一台机器的一个数据表 Collection1 存储了 1T 数据,压力太大了</span>!在分给 <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)"> 个机器后, 每个机器都是 256G,则分摊了集中在一台
机器的压力。事实上,上图4个分片如果没有副本集(replica </span><span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">)是个不完整架构,假设其中的一个分片挂掉那四 分之一的数据就丢失了,所以在高可用性的分片架构还
需要对于每一个分片构建 replica </span><span style="color: rgba(0, 0, 255, 1)">set</span> 副本集保 证分片的可靠性。生产环境通常是 <span style="color: rgba(128, 0, 128, 1)">2</span> 个副本 + <span style="color: rgba(128, 0, 128, 1)">1</span> 个仲裁。</pre>
</div>
<p>2)Sharding分区的原理</p>
<p><code class="bash plain">分片,是指将数据拆分,将其分散到不同的机器上。这样的好处就是,不需要功能强大的大型计算机也可以存储更多的数据,处理更大的负载。mongoDB 的分片,</code><code class="bash plain">是将collection 的数据进行分割,然后将不同的部分分别存储到不同的机器上。当 collection 所占空间过大时,我们需要增加一台新的机器,分片会自动</code><code class="bash plain">将 collection 的数据分发到新的机器上。</code></p>
<div class="line number3 index2 alt2">
<div class="line number4 index3 alt1"><code class="bash plain">mongos:</code></div>
<div class="line number5 index4 alt2"><code class="bash plain">首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合。mongos就是一个路由服务器,它会根据管理员设置的</code><code class="bash string">"片键"</code></div>
<div class="line number6 index5 alt1"><code class="bash plain">将数据分摊到自己管理的mongod集群,数据和片的对应关系以及相应的配置信息保存在</code><code class="bash string">"config服务器"</code><code class="bash plain">上。</code></div>
<div class="line number7 index6 alt2"><code class="bash plain">客户端只需要对 mongos 进行操作就行了,至于如何进行分片,不需要 客户端参与,由 mongos 和 config 来完成。</code></div>
<div class="line number8 index7 alt1"> </div>
<div class="line number9 index8 alt2"><code class="bash plain">mongod: </code></div>
<div class="line number10 index9 alt1"><code class="bash plain">一个普通的数据库实例或者副本集,如果不分片的话,我们会直接连上mongod。</code></div>
<div class="line number11 index10 alt2"> </div>
<div class="line number12 index11 alt1"><code class="bash plain">分片是指将数据拆分,将其分散存在不同机器上的过程.有时也叫分区.将数据分散在不同的机器上MongoDB支持自动分片,可以摆脱手动分片的管理.集群自动切分数据,做负载均衡</code></div>
</div>
<div class="line number3 index2 alt2"><img src="https://img2020.cnblogs.com/blog/1339149/202008/1339149-20200817140247659-1400986579.png" alt="" width="678" height="393" loading="lazy">
<p> </p>
<p> </p>
<p>分片集群由以下3个服务组成:<br>Shards Server: 每个shard由一个或多个mongod进程组成,用于存储数据<br>Config Server: 用于存储集群的Metadata信息,包括每个Shard的信息和chunks信息<br>Route Server: 用于提供路由服务,由Client连接,使整个Cluster看起来像单个DB服务器</p>
<p>部署分片集群:</p>
<p>分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的shard1 <br>分别在3台机器运行一个mongod实例(称为mongod shard21,mongod shard22,mongod shard23)组织replica set2,作为cluster的shard2 <br>每台机器运行一个mongod实例,作为3个config server <br>每台机器运行一个mongos进程,用于客户端连接</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 128, 1)">1</span>)安装mongodb (3台机器都要操作) 下载压缩包, 安装可以参考前边的安装<br># tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-4.4.0.tgz</pre>
<p># cd /usr/local/src/<br># mv /root/mongodb-linux-x86_64-enterprise-rhel70-4.4.0 ./</p>
<p># mv mongodb-linux-x86_64-enterprise-rhel70-4.4.0 mongodb</p>
<p># yum install net-snmp -y</p>
<p><code class="bash plain">2)创建sharding数据目录</code></p>
<div class="line number10 index9 alt1"><code class="bash plain">根据本例sharding架构图所示,在各台sever上创建shard数据文件目录</code></div>
<div class="line number10 index9 alt1"><code class="bash plain">2)创建sharding数据目录</code>
<div class="line number10 index9 alt1"><code class="bash plain">根据本例sharding架构图所示,在各台sever上创建shard数据文件目录</code></div>
<div class="line number11 index10 alt2"><code class="bash plain">slave1</code></div>
<div class="line number12 index11 alt1"><code class="bash plain"></code><code class="bash comments"># mkdir /home/services/</code></div>
<div class="line number13 index12 alt2"><code class="bash plain"></code><code class="bash comments"># mv mongodb /home/services/</code></div>
<div class="line number14 index13 alt1"><code class="bash plain"></code><code class="bash comments"># cd /home/services/mongodb/</code></div>
<div class="line number15 index14 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard11</code></div>
<div class="line number16 index15 alt1"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard21</code></div>
<div class="line number17 index16 alt2"><code class="bash spaces"> </code> </div>
<div class="line number18 index17 alt1"><code class="bash plain">slave2</code></div>
<div class="line number19 index18 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir /home/services/</code></div>
<div class="line number20 index19 alt1"><code class="bash plain"></code><code class="bash comments"># mv mongodb /home/services/</code></div>
<div class="line number21 index20 alt2"><code class="bash plain"></code><code class="bash comments"># cd /home/services/mongodb/</code></div>
<div class="line number22 index21 alt1"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard12</code></div>
<div class="line number23 index22 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard22</code></div>
<div class="line number24 index23 alt1"><code class="bash spaces"> </code> </div>
<div class="line number25 index24 alt2"><code class="bash plain">slave3</code></div>
<div class="line number26 index25 alt1"><code class="bash plain"></code><code class="bash comments"># mkdir /home/services/</code></div>
<div class="line number27 index26 alt2"><code class="bash plain"></code><code class="bash comments"># mv mongodb /home/services/</code></div>
<div class="line number28 index27 alt1"><code class="bash plain"></code><code class="bash comments"># cd /home/services/mongodb/</code></div>
<div class="line number29 index28 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard13</code></div>
<div class="line number30 index29 alt1"><code class="bash plain"></code><code class="bash comments"># mkdir -p data/shard23</code></div>
<div class="line number30 index29 alt1"> </div>
<div class="line number30 index29 alt1">
<div class="line number32 index31 alt1"><code class="bash plain">3)配置relica sets</code></div>
<div class="line number33 index32 alt2"><code class="bash plain">3.1)配置shard1所用到的replica sets 1:</code></div>
<div class="line number34 index33 alt1"><code class="bash plain">slave1</code></div>
<div class="line number35 index34 alt2"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27018 --dbpath /home/services/mongodb/data/shard11 --oplogSize 100 --logpath /home/services/mongodb/data/shard11.log --logappend --fork --bind_ip 192.168.88.191</code></div>
<div class="line number36 index35 alt1"><code class="bash spaces"> </code> </div>
<div class="line number37 index36 alt2"><code class="bash plain">slave2</code></div>
<div class="line number38 index37 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27018 --dbpath /home/services/mongodb/data/shard12 --oplogSize 100 --logpath /home/services/mongodb/data/shard12.log --logappend --fork --bind_ip 192.168.88.192</code></div>
<div class="line number39 index38 alt2"><code class="bash spaces"> </code> </div>
<div class="line number40 index39 alt1"><code class="bash plain">slave3</code></div>
<div class="line number41 index40 alt2"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27018 --dbpath /home/services/mongodb/data/shard13 --oplogSize 100 --logpath /home/services/mongodb/data/shard13.log --logappend --fork --bind_ip 192.168.88.194</code></div>
<div class="line number42 index41 alt1"><code class="bash spaces"> </code> </div>
<div class="line number43 index42 alt2"><code class="bash plain">检测各个机器上的mongod进程是否正常起来了(</code><code class="bash functions">ps</code> <code class="bash plain">-ef|</code><code class="bash functions">grep</code> <code class="bash plain">mongod),27018端口是否正常起来了</code></div>
<div class="line number43 index42 alt2"> </div>
<div class="line number43 index42 alt2"><code class="bash plain">3.2)初始化replica </code><code class="bash functions">set</code> <code class="bash plain">1</code>
<div class="line number46 index45 alt1"><code class="bash plain">从3台机器中任意找一台,连接mongod</code></div>
<div class="line number47 index46 alt2"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb/bin/mongo --port 27018 --host 192.168.88.191</code></div>
<div class="line number48 index47 alt1"><code class="bash plain">......</code></div>
<div class="line number49 index48 alt2"><code class="bash plain">> config = {</code><code class="bash string">"_id"</code> <code class="bash plain">: </code><code class="bash string">"shard1"</code><code class="bash plain">,</code><code class="bash string">"members"</code> <code class="bash plain">: [{</code><code class="bash string">"_id"</code> <code class="bash plain">: 0,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.191:27018"</code><code class="bash plain">},{</code><code class="bash string">"_id"</code> <code class="bash plain">: 1,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.192:27018"</code><code class="bash plain">},{</code><code class="bash string">"_id"</code> <code class="bash plain">: 2,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.194:27018"</code><code class="bash plain">}]}</code></div>
<div class="line number50 index49 alt1"><code class="bash plain"><code class="bash plain"><code class="bash plain">> rs.initiate(config);</code></code></code>
<div class="line number68 index67 alt1"><code class="bash plain">{ </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number68 index67 alt1">
<div class="line number70 index69 alt1"><code class="bash plain">3.3)配置shard2所用到的replica sets 2:</code></div>
<div class="line number71 index70 alt2"><code class="bash plain">slave1</code></div>
<div class="line number72 index71 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --shardsvr --replSet shard2 --port 27019 --dbpath /home/services/mongodb/data/shard21 --oplogSize 100 --logpath /home/services/mongodb/data/shard21.log --logappend --fork --bind_ip 192.168.88.191</code></div>
<div class="line number73 index72 alt2"><code class="bash spaces"> </code> </div>
<div class="line number74 index73 alt1"><code class="bash plain">slave2</code></div>
<div class="line number75 index74 alt2"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --shardsvr --replSet shard2 --port 27019 --dbpath /home/services/mongodb/data/shard22 --oplogSize 100 --logpath /home/services/mongodb/data/shard22.log --logappend --fork --bind_ip 192.168.88.192</code></div>
<div class="line number76 index75 alt1"><code class="bash spaces"> </code> </div>
<div class="line number77 index76 alt2"><code class="bash plain">slave3</code></div>
<div class="line number78 index77 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --shardsvr --replSet shard2 --port 27019 --dbpath /home/services/mongodb/data/shard23 --oplogSize 100 --logpath /home/services/mongodb/data/shard23.log --logappend --fork --bind_ip 192.168.88.194</code></div>
<div class="line number79 index78 alt2"> </div>
<div class="line number79 index78 alt2">
<div class="line number80 index79 alt1"><code class="bash plain">3.4)初始化replica </code><code class="bash functions">set</code> <code class="bash plain">2</code></div>
<div class="line number81 index80 alt2"><code class="bash plain">从3台机器中任意找一台,连接mongod</code></div>
<div class="line number82 index81 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb/bin/mongo --port 27019</code></div>
<div class="line number83 index82 alt2"><code class="bash plain">......</code></div>
<div class="line number84 index83 alt1"><code class="bash plain">> config = {</code><code class="bash string">"_id"</code> <code class="bash plain">: </code><code class="bash string">"shard2"</code><code class="bash plain">,</code><code class="bash string">"members"</code> <code class="bash plain">: [{</code><code class="bash string">"_id"</code> <code class="bash plain">: 0,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.191:27019"</code><code class="bash plain">},{</code><code class="bash string">"_id"</code> <code class="bash plain">: 1,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.192:27019"</code><code class="bash plain">},{</code><code class="bash string">"_id"</code> <code class="bash plain">: 2,</code><code class="bash string">"host"</code> <code class="bash plain">: </code><code class="bash string">"192.168.88.194:27019"</code><code class="bash plain">}]}</code></div>
<div class="line number85 index84 alt2"><code class="bash plain"> </code></div>
<div class="line number85 index84 alt2">
<div class="line number102 index101 alt1"><code class="bash plain">> rs.initiate(config);</code></div>
<div class="line number103 index102 alt2"><code class="bash plain">{ </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number103 index102 alt2"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>4)配置三台config server</p>
<div class="cnblogs_code">
<div class="line number106 index105 alt1"><code class="bash plain">slave1</code></div>
<div class="line number107 index106 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p /home/services/mongodb/data/config</code></div>
<div class="line number108 index107 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --configsvr --dbpath /home/services/mongodb/data/config --port 20000 --logpath /home/services/mongodb/data/config.log --logappend --fork --bind_ip 192.168.88.191</code></div>
<div class="line number109 index108 alt2"><code class="bash spaces"> </code> </div>
<div class="line number110 index109 alt1"><code class="bash plain">slave2</code></div>
<div class="line number111 index110 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p /home/services/mongodb/data/config</code></div>
<div class="line number112 index111 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --configsvr --dbpath /home/services/mongodb/data/config --port 20000 --logpath /home/services/mongodb/data/config.log --logappend --fork --bind_ip 192.168.88.192</code></div>
<div class="line number113 index112 alt2"><code class="bash spaces"> </code> </div>
<div class="line number114 index113 alt1"><code class="bash plain">slave3</code></div>
<div class="line number115 index114 alt2"><code class="bash plain"></code><code class="bash comments"># mkdir -p /home/services/mongodb/data/config</code></div>
<div class="line number116 index115 alt1"><code class="bash plain"></code><code class="bash comments"># /home/services/mongodb//bin/mongod --configsvr --dbpath /home/services/mongodb/data/config --port 20000 --logpath /home/services/mongodb/data/config.log --logappend --fork --bind_ip 192.168.88.194</code></div>
<div class="line number117 index116 alt2"><code class="bash spaces"> </code> </div>
</div>
<p>5)配置mongs</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">在三台机器上分别执行:
slave1
# /home/services/mongodb/bin/mongos --configdb shard1/<span style="color: rgba(128, 0, 128, 1)">192.168.88.191</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span>,<span style="color: rgba(128, 0, 128, 1)">192.168.88.192</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span>,<span style="color: rgba(128, 0, 128, 1)">192.168.88.194</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span> --port <span style="color: rgba(128, 0, 128, 1)">27017</span> --chunkSize <span style="color: rgba(128, 0, 128, 1)">5</span> --logpath /home/services/mongodb/data/mongos.log --logappend --<span style="color: rgba(0, 0, 0, 1)">fork --bind_ip 192.168.88.191
slave2
# /home/services/mongodb/bin/mongos --configdb shard1/<span style="color: rgba(128, 0, 128, 1)">192.168.88.191</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span>,<span style="color: rgba(128, 0, 128, 1)">192.168.88.192</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span>,<span style="color: rgba(128, 0, 128, 1)">192.168.88.194</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span> --port <span style="color: rgba(128, 0, 128, 1)">27017</span> --chunkSize <span style="color: rgba(128, 0, 128, 1)">5</span> --logpath /home/services/mongodb/data/mongos.log --logappend --<span style="color: rgba(0, 0, 0, 1)">fork</span></pre>
<pre><span>--bind_ip 192.168.88.192</span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)">slave3 # /home/services/mongodb/bin/mongos --configdb shard1/<span style="color: rgba(128, 0, 128, 1)">192.168.88.191</span>:20000,<span style="color: rgba(128, 0, 128, 1)">192.168.88.192</span>:20000,<span style="color: rgba(128, 0, 128, 1)">192.168.88.194</span>:<span style="color: rgba(128, 0, 128, 1)">20000</span> --port <span style="color: rgba(128, 0, 128, 1)">27017</span> --chunkSize <span style="color: rgba(128, 0, 128, 1)">5</span> --logpath /home/services/mongodb/data/mongos.log --logappend --<span>fork</span></pre>
<pre><span>--bind_ip 192.168.88.194</span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)">注意:新版版的mongodb的mongos命令里就不识别</span>--chunkSize参数了<br>报错信息:</pre>
<p>--logpath /home/services/mongodb/data/mongos.log --logappend --fork --bind_ip 192.168.88.192<br>FailedToParse: mirrored config server connections are not supported; for config server replica sets be sure to use the replica set connection string<br>try '/home/services/mongodb/bin/mongos --help' for more information</p>
<p>需要加上副本名称</p>
<p>{"t":{"$date":"2020-08-17T17:16:12.133+08:00"},"s":"I", "c":"NETWORK", "id":4712102, "ctx":"ReplicaSetMonitor-TaskExecutor","msg":"Host failed in replica set","attr":{"replicaSet":"shard1","host":"192.169.88.192:20000","error":{"code":202,"codeName":"NetworkInterfaceExceededTimeLimit","errmsg":"Couldn't get a connection within the time limit of 483ms"},"action":{"dropConnections":false,"requestImmediateCheck":false,"outcome":{"host":"192.169.88.192:20000","success":false,"errorMessage":"NetworkInterfaceExceededTimeLimit: Couldn't get a connection within the time limit of 483ms"}}}}</p>
<p>about to fork child process, waiting until server is ready for connections</p>
<p>尚未解决</p>
</div>
<p> <span style="text-align: left; color: rgba(0, 0, 0, 1); text-transform: none; text-indent: 0; letter-spacing: normal; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 12px; font-style: normal; font-weight: normal; word-spacing: 0; float: none; display: inline !important; white-space: nowrap; orphans: 2; widows: 2; background-color: rgba(244, 244, 244, 1); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial">6)配置分片集群(Configuring the Shard Cluster)</span></p>
<p><span style="text-align: left; color: rgba(0, 0, 0, 1); text-transform: none; text-indent: 0; letter-spacing: normal; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 12px; font-style: normal; font-weight: normal; word-spacing: 0; float: none; display: inline !important; white-space: nowrap; orphans: 2; widows: 2; background-color: rgba(244, 244, 244, 1); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial"><span style="text-align: left; color: rgba(0, 0, 0, 1); text-transform: none; text-indent: 0; letter-spacing: normal; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 12px; font-style: normal; font-weight: normal; word-spacing: 0; float: none; display: inline !important; white-space: nowrap; orphans: 2; widows: 2; background-color: rgba(255, 255, 255, 1); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial">从3台机器中任意找一台,连接mongod,并切换到admin数据库做以下配置</span></span></p>
<p> </p>
<div class="cnblogs_code">
<pre># /home/services/mongodb/bin/mongo <span style="color: rgba(128, 0, 128, 1)">182.48</span>.<span style="color: rgba(128, 0, 128, 1)">115.236</span>:<span style="color: rgba(128, 0, 128, 1)">27017</span>/admin<br><code class="bash plain">6.2)加入shards分区</code></pre>
<div class="line number142 index141 alt1"><code class="bash plain">如里shard是单台服务器,用</code><code class="bash string">"db.runCommand( { addshard : “[:]” } )"</code><code class="bash plain">这样的命令加入</code></div>
<div class="line number143 index142 alt2"><code class="bash plain">如果shard是replica sets,用</code><code class="bash string">"replicaSetName/[:port][,serverhostname2[:port],…]"</code><code class="bash plain">这样的格式表示,例如本例执行:</code></div>
<div class="line number143 index142 alt2"> </div>
<div class="line number144 index143 alt1"><code class="bash plain">mongos> db.runCommand( { addshard:</code><code class="bash string">"shard1/192.168.88.191:27018,192.168.88.192:27018,192.168.88.194:27018"</code><code class="bash plain">,name:</code><code class="bash string">"s1"</code><code class="bash plain">,maxsize:20480});</code></div>
<div class="line number145 index144 alt2"><code class="bash plain">{ </code><code class="bash string">"shardAdded"</code> <code class="bash plain">: </code><code class="bash string">"s1"</code><code class="bash plain">, </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number146 index145 alt1"><code class="bash plain">mongos> db.runCommand( { addshard:</code><code class="bash string">"shard2/1192.168.88.191:27019,192.168.88.192:27019,192.168.88.194:27019"</code><code class="bash plain">,name:</code><code class="bash string">"s2"</code><code class="bash plain">,maxsize:20480});</code></div>
<div class="line number147 index146 alt2"><code class="bash plain">{ </code><code class="bash string">"shardAdded"</code> <code class="bash plain">: </code><code class="bash string">"s2"</code><code class="bash plain">, </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number148 index147 alt1"> </div>
<div class="line number149 index148 alt2"><code class="bash plain">注意:</code></div>
<div class="line number150 index149 alt1"><code class="bash plain">可选参数</code></div>
<div class="line number151 index150 alt2"><code class="bash plain">Name:用于指定每个shard的名字,不指定的话系统将自动分配</code></div>
<div class="line number152 index151 alt1"><code class="bash plain">maxSize:指定各个shard可使用的最大磁盘空间,单位megabytes</code></div>
<div class="line number152 index151 alt1"> </div>
<div class="line number152 index151 alt1">
<div class="line number154 index153 alt1"><code class="bash plain">6.3)Listing shards</code></div>
<div class="line number155 index154 alt2"><code class="bash plain">mongos> db.runCommand( { listshards : 1 } )</code></div>
<div class="line number155 index154 alt2">上面命令列出了以上二个添加的shards,表示shards已经配置成功</div>
<div class="line number155 index154 alt2"> </div>
<div class="line number155 index154 alt2"><code class="bash plain">6.4)激活数据库分片</code>
<div class="line number174 index173 alt1"><code class="bash plain">命令:</code></div>
<div class="line number175 index174 alt2"><code class="bash plain">db.runCommand( { enablesharding : “” } );</code></div>
<div class="line number176 index175 alt1"><code class="bash plain">通过执行以上命令,可以让数据库跨shard,如果不执行这步,数据库只会存放在一个shard,一旦激活数据库分片,数据库中不同的collection将被存放在不同的shard上,</code></div>
<div class="line number177 index176 alt2"><code class="bash plain">但一个collection仍旧存放在同一个shard上,要使单个collection也分片,还需单独对collection作些操作</code></div>
<div class="line number178 index177 alt1"> </div>
<div class="line number179 index178 alt2"><code class="bash plain">Collecton分片</code></div>
<div class="line number180 index179 alt1"><code class="bash plain">要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作:</code></div>
<div class="line number181 index180 alt2"><code class="bash plain">db.runCommand( { shardcollection : “”,key : });</code></div>
<div class="line number182 index181 alt1"> </div>
<div class="line number183 index182 alt2"><code class="bash plain">注意:</code></div>
<div class="line number184 index183 alt1"><code class="bash plain">a)分片的collection系统会自动创建一个索引(也可用户提前创建好)</code></div>
<div class="line number185 index184 alt2"><code class="bash plain">b)分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许</code></div>
<div class="line number185 index184 alt2"> </div>
<div class="line number185 index184 alt2"><code class="bash plain">本案例:</code>
<div class="line number188 index187 alt1"><code class="bash plain">mongos> db.runCommand({enablesharding:</code><code class="bash string">"test2"</code><code class="bash plain">});</code></div>
<div class="line number189 index188 alt2"><code class="bash plain">{ </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number190 index189 alt1"><code class="bash plain">mongos> db.runCommand( { shardcollection : </code><code class="bash string">"test2.books"</code><code class="bash plain">, key : { </code><code class="bash functions">id</code> <code class="bash plain">: 1 } } );</code></div>
<div class="line number191 index190 alt2"><code class="bash plain">{ </code><code class="bash string">"collectionsharded"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">, </code><code class="bash string">"ok"</code> <code class="bash plain">: 1 }</code></div>
<div class="line number192 index191 alt1"><code class="bash plain">mongos> use test2</code></div>
<div class="line number193 index192 alt2"><code class="bash plain">switched to db test2</code></div>
<div class="line number194 index193 alt1"><code class="bash plain">mongos> db.stats();</code></div>
<div class="line number195 index194 alt2"><code class="bash plain">{</code></div>
<div class="line number196 index195 alt1"><code class="bash spaces"> </code><code class="bash string">"raw"</code> <code class="bash plain">: {</code></div>
<div class="line number197 index196 alt2"><code class="bash spaces"> </code><code class="bash string">"shard1/182.48.115.236:27018,182.48.115.237:27018,182.48.115.238:27018"</code> <code class="bash plain">: {</code></div>
<div class="line number198 index197 alt1"><code class="bash spaces"> </code><code class="bash string">"db"</code> <code class="bash plain">: </code><code class="bash string">"test2"</code><code class="bash plain">,</code></div>
<div class="line number199 index198 alt2"><code class="bash spaces"> </code><code class="bash string">"collections"</code> <code class="bash plain">: 3,</code></div>
<div class="line number200 index199 alt1"><code class="bash spaces"> </code><code class="bash string">"objects"</code> <code class="bash plain">: 6,</code></div>
<div class="line number201 index200 alt2"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 69.33333333333333,</code></div>
<div class="line number202 index201 alt1"><code class="bash spaces"> </code><code class="bash string">"dataSize"</code> <code class="bash plain">: 416,</code></div>
<div class="line number203 index202 alt2"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 20480,</code></div>
<div class="line number204 index203 alt1"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 3,</code></div>
<div class="line number205 index204 alt2"><code class="bash spaces"> </code><code class="bash string">"indexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number206 index205 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSize"</code> <code class="bash plain">: 16352,</code></div>
<div class="line number207 index206 alt2"><code class="bash spaces"> </code><code class="bash string">"fileSize"</code> <code class="bash plain">: 67108864,</code></div>
<div class="line number208 index207 alt1"><code class="bash spaces"> </code><code class="bash string">"nsSizeMB"</code> <code class="bash plain">: 16,</code></div>
<div class="line number209 index208 alt2"><code class="bash spaces"> </code><code class="bash string">"extentFreeList"</code> <code class="bash plain">: {</code></div>
<div class="line number210 index209 alt1"><code class="bash spaces"> </code><code class="bash string">"num"</code> <code class="bash plain">: 0,</code></div>
<div class="line number211 index210 alt2"><code class="bash spaces"> </code><code class="bash string">"totalSize"</code> <code class="bash plain">: 0</code></div>
<div class="line number212 index211 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number213 index212 alt2"><code class="bash spaces"> </code><code class="bash string">"dataFileVersion"</code> <code class="bash plain">: {</code></div>
<div class="line number214 index213 alt1"><code class="bash spaces"> </code><code class="bash string">"major"</code> <code class="bash plain">: 4,</code></div>
<div class="line number215 index214 alt2"><code class="bash spaces"> </code><code class="bash string">"minor"</code> <code class="bash plain">: 22</code></div>
<div class="line number216 index215 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number217 index216 alt2"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1,</code></div>
<div class="line number218 index217 alt1"><code class="bash spaces"> </code><code class="bash string">"$gleStats"</code> <code class="bash plain">: {</code></div>
<div class="line number219 index218 alt2"><code class="bash spaces"> </code><code class="bash string">"lastOpTime"</code> <code class="bash plain">: Timestamp(0, 0),</code></div>
<div class="line number220 index219 alt1"><code class="bash spaces"> </code><code class="bash string">"electionId"</code> <code class="bash plain">: ObjectId(</code><code class="bash string">"586286596422d63aa9f9f000"</code><code class="bash plain">)</code></div>
<div class="line number221 index220 alt2"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number222 index221 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number223 index222 alt2"><code class="bash spaces"> </code><code class="bash string">"shard2/182.48.115.236:27019,182.48.115.237:27019,182.48.115.238:27019"</code> <code class="bash plain">: {</code></div>
<div class="line number224 index223 alt1"><code class="bash spaces"> </code><code class="bash string">"db"</code> <code class="bash plain">: </code><code class="bash string">"test2"</code><code class="bash plain">,</code></div>
<div class="line number225 index224 alt2"><code class="bash spaces"> </code><code class="bash string">"collections"</code> <code class="bash plain">: 0,</code></div>
<div class="line number226 index225 alt1"><code class="bash spaces"> </code><code class="bash string">"objects"</code> <code class="bash plain">: 0,</code></div>
<div class="line number227 index226 alt2"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number228 index227 alt1"><code class="bash spaces"> </code><code class="bash string">"dataSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number229 index228 alt2"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number230 index229 alt1"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 0,</code></div>
<div class="line number231 index230 alt2"><code class="bash spaces"> </code><code class="bash string">"indexes"</code> <code class="bash plain">: 0,</code></div>
<div class="line number232 index231 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number233 index232 alt2"><code class="bash spaces"> </code><code class="bash string">"fileSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number234 index233 alt1"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1</code></div>
<div class="line number235 index234 alt2"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number236 index235 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number237 index236 alt2"><code class="bash spaces"> </code><code class="bash string">"objects"</code> <code class="bash plain">: 6,</code></div>
<div class="line number238 index237 alt1"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 69,</code></div>
<div class="line number239 index238 alt2"><code class="bash spaces"> </code><code class="bash string">"dataSize"</code> <code class="bash plain">: 416,</code></div>
<div class="line number240 index239 alt1"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 20480,</code></div>
<div class="line number241 index240 alt2"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 3,</code></div>
<div class="line number242 index241 alt1"><code class="bash spaces"> </code><code class="bash string">"indexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number243 index242 alt2"><code class="bash spaces"> </code><code class="bash string">"indexSize"</code> <code class="bash plain">: 16352,</code></div>
<div class="line number244 index243 alt1"><code class="bash spaces"> </code><code class="bash string">"fileSize"</code> <code class="bash plain">: 67108864,</code></div>
<div class="line number245 index244 alt2"><code class="bash spaces"> </code><code class="bash string">"extentFreeList"</code> <code class="bash plain">: {</code></div>
<div class="line number246 index245 alt1"><code class="bash spaces"> </code><code class="bash string">"num"</code> <code class="bash plain">: 0,</code></div>
<div class="line number247 index246 alt2"><code class="bash spaces"> </code><code class="bash string">"totalSize"</code> <code class="bash plain">: 0</code></div>
<div class="line number248 index247 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number249 index248 alt2"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1</code></div>
<div class="line number250 index249 alt1"><code class="bash plain">}</code></div>
<div class="line number251 index250 alt2"><code class="bash plain">mongos> db.books.stats();</code></div>
<div class="line number252 index251 alt1"><code class="bash plain">{</code></div>
<div class="line number253 index252 alt2"><code class="bash spaces"> </code><code class="bash string">"sharded"</code> <code class="bash plain">: </code><code class="bash functions">true</code><code class="bash plain">,</code></div>
<div class="line number254 index253 alt1"><code class="bash spaces"> </code><code class="bash string">"paddingFactorNote"</code> <code class="bash plain">: </code><code class="bash string">"paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for c ompatibility only."</code><code class="bash plain">,</code></div>
<div class="line number255 index254 alt2"><code class="bash spaces"> </code><code class="bash string">"userFlags"</code> <code class="bash plain">: 1,</code></div>
<div class="line number256 index255 alt1"><code class="bash spaces"> </code><code class="bash string">"capped"</code> <code class="bash plain">: </code><code class="bash functions">false</code><code class="bash plain">,</code></div>
<div class="line number257 index256 alt2"><code class="bash spaces"> </code><code class="bash string">"ns"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">,</code></div>
<div class="line number258 index257 alt1"><code class="bash spaces"> </code><code class="bash string">"count"</code> <code class="bash plain">: 0,</code></div>
<div class="line number259 index258 alt2"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 1,</code></div>
<div class="line number260 index259 alt1"><code class="bash spaces"> </code><code class="bash string">"size"</code> <code class="bash plain">: 0,</code></div>
<div class="line number261 index260 alt2"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 8192,</code></div>
<div class="line number262 index261 alt1"><code class="bash spaces"> </code><code class="bash string">"totalIndexSize"</code> <code class="bash plain">: 16352,</code></div>
<div class="line number263 index262 alt2"><code class="bash spaces"> </code><code class="bash string">"indexSizes"</code> <code class="bash plain">: {</code></div>
<div class="line number264 index263 alt1"><code class="bash spaces"> </code><code class="bash string">"_id_"</code> <code class="bash plain">: 8176,</code></div>
<div class="line number265 index264 alt2"><code class="bash spaces"> </code><code class="bash string">"id_1"</code> <code class="bash plain">: 8176</code></div>
<div class="line number266 index265 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number267 index266 alt2"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 0,</code></div>
<div class="line number268 index267 alt1"><code class="bash spaces"> </code><code class="bash string">"nindexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number269 index268 alt2"><code class="bash spaces"> </code><code class="bash string">"nchunks"</code> <code class="bash plain">: 1,</code></div>
<div class="line number270 index269 alt1"><code class="bash spaces"> </code><code class="bash string">"shards"</code> <code class="bash plain">: {</code></div>
<div class="line number271 index270 alt2"><code class="bash spaces"> </code><code class="bash string">"s1"</code> <code class="bash plain">: {</code></div>
<div class="line number272 index271 alt1"><code class="bash spaces"> </code><code class="bash string">"ns"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">,</code></div>
<div class="line number273 index272 alt2"><code class="bash spaces"> </code><code class="bash string">"count"</code> <code class="bash plain">: 0,</code></div>
<div class="line number274 index273 alt1"><code class="bash spaces"> </code><code class="bash string">"size"</code> <code class="bash plain">: 0,</code></div>
<div class="line number275 index274 alt2"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 1,</code></div>
<div class="line number276 index275 alt1"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 8192,</code></div>
<div class="line number277 index276 alt2"><code class="bash spaces"> </code><code class="bash string">"lastExtentSize"</code> <code class="bash plain">: 8192,</code></div>
<div class="line number278 index277 alt1"><code class="bash spaces"> </code><code class="bash string">"paddingFactor"</code> <code class="bash plain">: 1,</code></div>
<div class="line number279 index278 alt2"><code class="bash spaces"> </code><code class="bash string">"paddingFactorNote"</code> <code class="bash plain">: </code><code class="bash string">"paddingFactor is unused and unmaintained in 3.0. It remains hard co ded to 1.0 for compatibility only."</code><code class="bash plain">,</code></div>
<div class="line number280 index279 alt1"><code class="bash spaces"> </code><code class="bash string">"userFlags"</code> <code class="bash plain">: 1,</code></div>
<div class="line number281 index280 alt2"><code class="bash spaces"> </code><code class="bash string">"capped"</code> <code class="bash plain">: </code><code class="bash functions">false</code><code class="bash plain">,</code></div>
<div class="line number282 index281 alt1"><code class="bash spaces"> </code><code class="bash string">"nindexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number283 index282 alt2"><code class="bash spaces"> </code><code class="bash string">"totalIndexSize"</code> <code class="bash plain">: 16352,</code></div>
<div class="line number284 index283 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSizes"</code> <code class="bash plain">: {</code></div>
<div class="line number285 index284 alt2"><code class="bash spaces"> </code><code class="bash string">"_id_"</code> <code class="bash plain">: 8176,</code></div>
<div class="line number286 index285 alt1"><code class="bash spaces"> </code><code class="bash string">"id_1"</code> <code class="bash plain">: 8176</code></div>
<div class="line number287 index286 alt2"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number288 index287 alt1"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1,</code></div>
<div class="line number289 index288 alt2"><code class="bash spaces"> </code><code class="bash string">"$gleStats"</code> <code class="bash plain">: {</code></div>
<div class="line number290 index289 alt1"><code class="bash spaces"> </code><code class="bash string">"lastOpTime"</code> <code class="bash plain">: Timestamp(0, 0),</code></div>
<div class="line number291 index290 alt2"><code class="bash spaces"> </code><code class="bash string">"electionId"</code> <code class="bash plain">: ObjectId(</code><code class="bash string">"586286596422d63aa9f9f000"</code><code class="bash plain">)</code></div>
<div class="line number292 index291 alt1"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number293 index292 alt2"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number294 index293 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number295 index294 alt2"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1</code></div>
<div class="line number296 index295 alt1"><code class="bash plain">}</code></div>
<div class="line number297 index296 alt2"> </div>
<div class="line number298 index297 alt1"> </div>
<div class="line number299 index298 alt2"><code class="bash plain">7)测试</code></div>
<div class="line number300 index299 alt1"><code class="bash plain">mongos> </code><code class="bash keyword">for</code> <code class="bash plain">(var i = 1; i <= 20000; i++) db.books.save({</code><code class="bash functions">id</code><code class="bash plain">:i,name:</code><code class="bash string">"12345678"</code><code class="bash plain">,sex:</code><code class="bash string">"male"</code><code class="bash plain">,age:27,value:</code><code class="bash string">"test"</code><code class="bash plain">});</code></div>
<div class="line number301 index300 alt2"><code class="bash plain">WriteResult({ </code><code class="bash string">"nInserted"</code> <code class="bash plain">: 1 })</code></div>
<div class="line number302 index301 alt1"><code class="bash plain">mongos> db.books.stats();</code></div>
<div class="line number303 index302 alt2"><code class="bash plain">{</code></div>
<div class="line number304 index303 alt1"><code class="bash spaces"> </code><code class="bash string">"sharded"</code> <code class="bash plain">: </code><code class="bash functions">true</code><code class="bash plain">,</code></div>
<div class="line number305 index304 alt2"><code class="bash spaces"> </code><code class="bash string">"paddingFactorNote"</code> <code class="bash plain">: </code><code class="bash string">"paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only."</code><code class="bash plain">,</code></div>
<div class="line number306 index305 alt1"><code class="bash spaces"> </code><code class="bash string">"userFlags"</code> <code class="bash plain">: 1,</code></div>
<div class="line number307 index306 alt2"><code class="bash spaces"> </code><code class="bash string">"capped"</code> <code class="bash plain">: </code><code class="bash functions">false</code><code class="bash plain">,</code></div>
<div class="line number308 index307 alt1"><code class="bash spaces"> </code><code class="bash string">"ns"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">,</code></div>
<div class="line number309 index308 alt2"><code class="bash spaces"> </code><code class="bash string">"count"</code> <code class="bash plain">: 20000,</code></div>
<div class="line number310 index309 alt1"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 10,</code></div>
<div class="line number311 index310 alt2"><code class="bash spaces"> </code><code class="bash string">"size"</code> <code class="bash plain">: 2240000,</code></div>
<div class="line number312 index311 alt1"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 5586944,</code></div>
<div class="line number313 index312 alt2"><code class="bash spaces"> </code><code class="bash string">"totalIndexSize"</code> <code class="bash plain">: 1250928,</code></div>
<div class="line number314 index313 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSizes"</code> <code class="bash plain">: {</code></div>
<div class="line number315 index314 alt2"><code class="bash spaces"> </code><code class="bash string">"_id_"</code> <code class="bash plain">: 670432,</code></div>
<div class="line number316 index315 alt1"><code class="bash spaces"> </code><code class="bash string">"id_1"</code> <code class="bash plain">: 580496</code></div>
<div class="line number317 index316 alt2"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number318 index317 alt1"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 112,</code></div>
<div class="line number319 index318 alt2"><code class="bash spaces"> </code><code class="bash string">"nindexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number320 index319 alt1"><code class="bash spaces"> </code><code class="bash string">"nchunks"</code> <code class="bash plain">: 5,</code></div>
<div class="line number321 index320 alt2"><code class="bash spaces"> </code><code class="bash string">"shards"</code> <code class="bash plain">: {</code></div>
<div class="line number322 index321 alt1"><code class="bash spaces"> </code><code class="bash string">"s1"</code> <code class="bash plain">: {</code></div>
<div class="line number323 index322 alt2"><code class="bash spaces"> </code><code class="bash string">"ns"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">,</code></div>
<div class="line number324 index323 alt1"><code class="bash spaces"> </code><code class="bash string">"count"</code> <code class="bash plain">: 12300,</code></div>
<div class="line number325 index324 alt2"><code class="bash spaces"> </code><code class="bash string">"size"</code> <code class="bash plain">: 1377600,</code></div>
<div class="line number326 index325 alt1"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 112,</code></div>
<div class="line number327 index326 alt2"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 5,</code></div>
<div class="line number328 index327 alt1"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 2793472,</code></div>
<div class="line number329 index328 alt2"><code class="bash spaces"> </code><code class="bash string">"lastExtentSize"</code> <code class="bash plain">: 2097152,</code></div>
<div class="line number330 index329 alt1"><code class="bash spaces"> </code><code class="bash string">"paddingFactor"</code> <code class="bash plain">: 1,</code></div>
<div class="line number331 index330 alt2"><code class="bash spaces"> </code><code class="bash string">"paddingFactorNote"</code> <code class="bash plain">: </code><code class="bash string">"paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only."</code><code class="bash plain">,</code></div>
<div class="line number332 index331 alt1"><code class="bash spaces"> </code><code class="bash string">"userFlags"</code> <code class="bash plain">: 1,</code></div>
<div class="line number333 index332 alt2"><code class="bash spaces"> </code><code class="bash string">"capped"</code> <code class="bash plain">: </code><code class="bash functions">false</code><code class="bash plain">,</code></div>
<div class="line number334 index333 alt1"><code class="bash spaces"> </code><code class="bash string">"nindexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number335 index334 alt2"><code class="bash spaces"> </code><code class="bash string">"totalIndexSize"</code> <code class="bash plain">: 760368,</code></div>
<div class="line number336 index335 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSizes"</code> <code class="bash plain">: {</code></div>
<div class="line number337 index336 alt2"><code class="bash spaces"> </code><code class="bash string">"_id_"</code> <code class="bash plain">: 408800,</code></div>
<div class="line number338 index337 alt1"><code class="bash spaces"> </code><code class="bash string">"id_1"</code> <code class="bash plain">: 351568</code></div>
<div class="line number339 index338 alt2"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number340 index339 alt1"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1,</code></div>
<div class="line number341 index340 alt2"><code class="bash spaces"> </code><code class="bash string">"$gleStats"</code> <code class="bash plain">: {</code></div>
<div class="line number342 index341 alt1"><code class="bash spaces"> </code><code class="bash string">"lastOpTime"</code> <code class="bash plain">: Timestamp(0, 0),</code></div>
<div class="line number343 index342 alt2"><code class="bash spaces"> </code><code class="bash string">"electionId"</code> <code class="bash plain">: ObjectId(</code><code class="bash string">"586286596422d63aa9f9f000"</code><code class="bash plain">)</code></div>
<div class="line number344 index343 alt1"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number345 index344 alt2"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number346 index345 alt1"><code class="bash spaces"> </code><code class="bash string">"s2"</code> <code class="bash plain">: {</code></div>
<div class="line number347 index346 alt2"><code class="bash spaces"> </code><code class="bash string">"ns"</code> <code class="bash plain">: </code><code class="bash string">"test2.books"</code><code class="bash plain">,</code></div>
<div class="line number348 index347 alt1"><code class="bash spaces"> </code><code class="bash string">"count"</code> <code class="bash plain">: 7700,</code></div>
<div class="line number349 index348 alt2"><code class="bash spaces"> </code><code class="bash string">"size"</code> <code class="bash plain">: 862400,</code></div>
<div class="line number350 index349 alt1"><code class="bash spaces"> </code><code class="bash string">"avgObjSize"</code> <code class="bash plain">: 112,</code></div>
<div class="line number351 index350 alt2"><code class="bash spaces"> </code><code class="bash string">"numExtents"</code> <code class="bash plain">: 5,</code></div>
<div class="line number352 index351 alt1"><code class="bash spaces"> </code><code class="bash string">"storageSize"</code> <code class="bash plain">: 2793472,</code></div>
<div class="line number353 index352 alt2"><code class="bash spaces"> </code><code class="bash string">"lastExtentSize"</code> <code class="bash plain">: 2097152,</code></div>
<div class="line number354 index353 alt1"><code class="bash spaces"> </code><code class="bash string">"paddingFactor"</code> <code class="bash plain">: 1,</code></div>
<div class="line number355 index354 alt2"><code class="bash spaces"> </code><code class="bash string">"paddingFactorNote"</code> <code class="bash plain">: </code><code class="bash string">"paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only."</code><code class="bash plain">,</code></div>
<div class="line number356 index355 alt1"><code class="bash spaces"> </code><code class="bash string">"userFlags"</code> <code class="bash plain">: 1,</code></div>
<div class="line number357 index356 alt2"><code class="bash spaces"> </code><code class="bash string">"capped"</code> <code class="bash plain">: </code><code class="bash functions">false</code><code class="bash plain">,</code></div>
<div class="line number358 index357 alt1"><code class="bash spaces"> </code><code class="bash string">"nindexes"</code> <code class="bash plain">: 2,</code></div>
<div class="line number359 index358 alt2"><code class="bash spaces"> </code><code class="bash string">"totalIndexSize"</code> <code class="bash plain">: 490560,</code></div>
<div class="line number360 index359 alt1"><code class="bash spaces"> </code><code class="bash string">"indexSizes"</code> <code class="bash plain">: {</code></div>
<div class="line number361 index360 alt2"><code class="bash spaces"> </code><code class="bash string">"_id_"</code> <code class="bash plain">: 261632,</code></div>
<div class="line number362 index361 alt1"><code class="bash spaces"> </code><code class="bash string">"id_1"</code> <code class="bash plain">: 228928</code></div>
<div class="line number363 index362 alt2"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number364 index363 alt1"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1,</code></div>
<div class="line number365 index364 alt2"><code class="bash spaces"> </code><code class="bash string">"$gleStats"</code> <code class="bash plain">: {</code></div>
<div class="line number366 index365 alt1"><code class="bash spaces"> </code><code class="bash string">"lastOpTime"</code> <code class="bash plain">: Timestamp(0, 0),</code></div>
<div class="line number367 index366 alt2"><code class="bash spaces"> </code><code class="bash string">"electionId"</code> <code class="bash plain">: ObjectId(</code><code class="bash string">"58628704f916bb05014c5ea7"</code><code class="bash plain">)</code></div>
<div class="line number368 index367 alt1"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number369 index368 alt2"><code class="bash spaces"> </code><code class="bash plain">}</code></div>
<div class="line number370 index369 alt1"><code class="bash spaces"> </code><code class="bash plain">},</code></div>
<div class="line number371 index370 alt2"><code class="bash spaces"> </code><code class="bash string">"ok"</code> <code class="bash plain">: 1</code></div>
<div class="line number372 index371 alt1"><code class="bash plain">}</code></div>
</div>
<div class="line number185 index184 alt2"> </div>
</div>
<div class="line number155 index154 alt2"> </div>
</div>
</div>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/huxl1/p/13517921.html
頁:
[1]