MongoDB 分片配置

社区版下载中心:https://www.mongodb.com/downl…
官方安装手册:https://docs.mongodb.com/manu…

下载解压

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.2.tgz
tar zxvf mongodb-linux-x86_64-ubuntu1604-3.6.2.tgz
mv mongodb-linux-x86_64-ubuntu1604-3.6.2 ~/mongo

配置环境变量

echo "export PATH=/root/mongo/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc

验证版本

mongo -version

如果出现没有显示版本号, 说明前几步有问题

创建数据和日志的文件夹

mkdir -p /data/db/27017
mkdir -p /data/db/27018
mkdir -p /data/db/27019
mkdir -p /data/db/27020

mkdir -p /data/mongo_log/

启动

第一进程是配置服务
下面三个是分片, 机器资源有限,这里不再添加副本(可以看成只有一个副本)

mongod --bind_ip_all --port 27017 --dbpath "/data/db/27017" --logpath "/data/mongo_log/27017.log" --configsvr --replSet "rs-config" --fork
mongod --bind_ip_all --port 27018 --dbpath "/data/db/27018" --logpath "/data/mongo_log/27018.log" --shardsvr --replSet "rs-1" --fork
mongod --bind_ip_all --port 27019 --dbpath "/data/db/27019" --logpath "/data/mongo_log/27019.log" --shardsvr --replSet "rs-2" --fork
mongod --bind_ip_all --port 27020 --dbpath "/data/db/27020" --logpath "/data/mongo_log/27020.log" --shardsvr --replSet "rs-3" --fork

启动副本集

循环登陆每个实例, 开启副本集

mongo 127.0.0.1:27017
进入 shell 后运行 rs.initiate() 然后 Ctrl + C 退出 shell

mongo 127.0.0.1:27018
.....
mongo 127.0.0.1:27020

启动 mongos

 mongos --bind_ip_all --port 27021 --configdb rs-config/127.0.0.1:27017 --logpath "/data/mongo_log/mongos_27021.log" --fork

登陆 mongos

进入 shell

mongo 127.0.0.1:27021

添加分片

sh.addShard("rs-1/wkfg-mongo:27018")
sh.addShard("rs-2/wkfg-mongo:27019")
sh.addShard("rs-3/wkfg-mongo:27020")

分片配置

指定数据库, 开启分片, 指定 Collection 的分片策略

sh.enableSharding("test")
sh.shardCollection("test.col",{id:"hashed"})

### 比如再添加一个
use mongo-study
sh.enableSharding("mongo-study")
sh.shardCollection("mongo-study.test-collection",{id:"hashed"})
    原文作者:junbaor
    原文地址: https://segmentfault.com/a/1190000013089491
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞