MongoDB分片

  

<强>简介:
分片(分片)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为蒙戈的路由进程进行操作,蒙戈知道数据和片的对应关系(通过配置服务器)。大部分使用场景都是解决磁盘空间的问题,对于写入有可能会变差,查询则尽量避免跨分片查询。
使用分片的时机:
1,机器的磁盘不够用了。使用分片解决磁盘空间的问题。
2,单个mongod已经不能满足写数据的性能要求。通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。
3,想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。
<强>分片架构图:
 MongoDB分片

  

<强>具体操作:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <强>安装MongoDB 3.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[root@localhost ~] # mkdir/abc
root@localhost ~ #山。cifs//192.168.100.1/rhel7/abc
密码root@//192.168.100.1/rhel7:
[root@localhost ~] # cd/abc
(root@localhost abc) # cd MongoDB/
[root@localhost MongoDB] # ls
mongodb-linux-x86_64-3.2.1。tgz mongodb-linux-x86_64-rhel70-4.0.0。tgz
[root@localhost MongoDB] #焦油zxvf mongodb-linux-x86_64-3.2.1。tgz - c/opt/
[root@localhost MongoDB] # cd/opt/
[root@localhost选择]# mv mongodb-linux-x86_64-3.2.1//usr/local/mongodb
[root@localhost选择]# cd/usr/local/mongodb/bin/
[root@localhost本]# ln - s/usr/local/mongodb/bin/mongo/usr/bin/mongo
[root@localhost本]# ln - s/usr/local/mongodb/bin/mongod/usr/bin/mongod
[root@localhost本]# mongo
[root@localhost本]# mkdir - p/数据/MongoDB/MongoDB {1, 2, 3, 4}
[root@localhost本]# cd/数据/MongoDB/
[root@localhost MongoDB] # mkdir日志
[root@localhost MongoDB] # cd日志/
[root@localhost日志]#触摸MongoDB} {1, 2, 3, 4。日志
[root@localhost日志]# chmod 777 *。日志
[root@localhost日志]# ulimit - u 25000
[root@localhost日志]# ulimit - n 25000
[root@localhost日志]# cd/usr/local/mongodb/bin/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <强>配置服务器 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[root@localhost本]# vim mongodb1.conf

  

=37017
dbpath=港/数据/mongodb mongodb1 logpath=/数据/mongodb
/logs/mongodb1.log
logappend=true
叉=true
maxConns=5000
storageEngine=mmapv1
configsvr=true

  

- - - - - - - - - - - - - - - - - - - - - - - <强>某节点内存不足时,从其他节点分配内存 - - - - - - - - - - - - - - - - - - - - - - - -
[root@localhost本]# sysctl - w vm.zone_reclaim_mode=0
vm。zone_reclaim_mode=0
[root@localhost本]#回声从来没有比;启用/sys/kernel/mm/transparent_hugepage/
[root@localhost本]#回声从来没有比;/sys/kernel/mm/transparent_hugepage/整理磁盘碎片
# mongod - f mongodb1 root@localhost本。参看
[root@localhost本]# mongo——端口37017
# cp - p mongodb1 root@localhost本。conf mongodb2。参看
[root@localhost本]# vim mongodb2.conf

  

=47017
dbpath=港/数据/mongodb mongodb2 logpath=/数据/mongodb
/logs/mongodb2.log
logappend=true
叉=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true

  

- - - - - - - - - - - - - - - - - - - - - - - - <强>分片服务器 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# cp - p mongodb2 root@localhost本。conf mongodb3。参看
[root@localhost本]# vim mongodb3.conf

  

=47018
dbpath=港/数据/mongodb mongodb3 logpath=/数据/mongodb
/logs/mongodb3.log
logappend=true
叉=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true

  

# mongod - f mongodb2 root@localhost本。参看
# mongod - f mongodb3 root@localhost本。参看
(root@localhost本)#。
/蒙戈——帮助- - - - - - - - - - - - - - - - - - - - - - - - - - - - - <强>启动路由服务器 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(root@localhost本)#。/蒙戈——端口27017——叉logpath=/usr/地方/mongodb/bin/路线。日志——configdb 192.168.120.129:37017——chunkSize 1

  

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

MongoDB分片