MongoDB学习笔记10——分片

分片(Sharding)这种技术可以将数据分散到多台机器,但对于应用而言,仍然如同在使用单个数据库一样。在使用MongoDB时,水平分区是唯一可采用的方式。

在MongoDB中由MongoS路径进程管理数据的分割,并将请求路由到必需的分片服务器。

在进行分片的时候需要mongod配置服务器和mongos分片服务器。

1)创建分片设置:

打开新的终端窗口:

$ mkdir -p /db/config/data

$ mongod --port 27022 --dbpath /db/config/data --configsvr --replSet config

$ mongo --port 27022

rs.initiate()

创建分片控制器:

$ mongos --configdb config/<hostname>:27022 --port 27021 --chunkSize 1

启动分片服务器:

$ mkdir -p /db/share0/data

$ mongod --port 27023 --dbpath /db/share0/data

创建一个名为testdb的数据库,然后在数据库中激活一个名为testcollection的集合,对该集合进行分片,赋予它一个名为testkey的参数,作为分片函数:

sh.enableSharing("testdb")

sh.shardCollection("testdb.testcollection",{testkey:1})

验证:

$mongo localhost:27021

use testdb

db.testcollection.count()

在集群中添加新的分片:

$ sudomkdir -p /db/shard2/data

$ sudomongod --port 27025 --dbpath /db/shard2/data

$ mongo localhost:27021

sn.addShard("<hostname>:27025")

在集群中移除分片服务器:

$ mongo localhost:27021

use admin

db.runCommand({removeShard:"<hostname>:27025"})

确定连接的方式:

$ mongo

use testdb

db.runCommand({isdbgrid:1})

isdbgrid:1字段,意味着目前连接到系统中已经启用的分片;如果包含了isdbgrid:0字段,表示连接到mongod。

列出分片服务器的状态:

$ mongo localhost:27021

sh.status()

2)均衡器:

MongoS中包含一个均衡器元素,它将会移动集群中数据的逻辑块,从而保证它们均匀分布在所有分片服务器中。

启动均衡器:

sh.startBalancer()

停止均衡器:

sh.stopBalancer()

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

MongoDB分片(Sharding)技术

分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事。和MySQL分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同服务器之间的均衡。2.1MongoDB

MongoDb分片集群认证

本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html),MongoDb分片集群认证几个主要流程1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFi

MongoDB DBA 实践8

在Linux系统中,主要是使用命令行进行mongodb的分片集群部署一、先决条件  mongodb安装成功,明确路径,MongoDB的几个路径:1./var/lib/mongodb2./var/log/mongodb3./etc/mongod.conf4.usr/bin/二、分片部署   

MongoDB 集群设置集合分片生效及查看集合分片情况

一、设计DB分片与Collection分片连接mongos/opt/mongodb/mongodblinuxx86_642.4.8/bin/mongo 127.0.0.1:27017使用admin数据库useadmin指定testdb分片生效db.runCommand({ena

Mongo权威指南(初级篇)

MongoDB学习笔记特点:空间换时间易于扩展全文索引SQL与NoSQL的合并,解决了SQL的效率既有SQL的形式,又有NoSQL的自由分片(Sharding)将大的集合分割到不同的服务器(集群),MongoDB自动完成数据的分配,而且对应用层透明集群mongos是用户与集群的交互点,用户可以把一个集群当成一台服务器