简介:机器两台,做了一个分片,一个副本集。个人备记,较为粗糙,请海涵。
1、日志文件,数据文件夹创建。
第一台机器,以下简称m1。
sudo mkdir /opt/mongodb3/data/dbs/shard27039/ -p
sudo mkdir /opt/mongodb3/data/configs/ -p
第二台机器,以下简称m2。
同上。
2、m1上开启mongod,无验证模式。
sudo bin/mongod --shardsvr --replSet shard27039 --port 27039 --dbpath /opt/mongodb3/data/dbs/shard27039/ --oplogSize 100 --logpath /opt/mongodb3/data/dbs/shard27039/shard.log --logappend --fork
m1上使用mongo登入shell。执行如下,创建一个副本集:
config={_id:"shard27039",members:[{_id:0, host:"10.163.119.212:27039"}]}
rs.initiate(config);
10.163.119.212为本机ip。
3、在m1上创建mongd配置服务和mongos路由。
sudo bin/mongod --configsvr --dbpath /opt/mongodb3/data/configs/ --port 20000 --logpath /opt/mongodb3/data/configs/config.log --logappend --fork
sudo bin/mongos --configdb 10.163.119.212:20000 --port 30000 --chunkSize 5 --logpath /opt/mongodb3/data/mongos.log --logappend --fork
4、配置mongos,添加分片。
sudo bin/mongo --shell --host 127.0.0.1 --port 30000
mongos> db.runCommand( { addshard : "shard27039/10.163.119.212:27039",name:"s27039",maxsize:204800} );
{ "shardAdded" : "s27039", "ok" : 1 }
5、在m1的mongos上添加超级管理员。
使用mongo进入mongos。
use admin;
db.createUser({user:”admin”,pwd:”admin”,roles:[“root”]});
6、重新启动mongod,mongos,开启mongod加密认证模式。
bin/mongod --shardsvr --replSet shard27039 --port 27039 --dbpath /opt/mongodb3/data/dbs/shard27039/ --oplogSize 100 --logpath /opt/mongodb3/data/dbs/shard27039/shard.log --logappend --fork --keyFile keyfile
bin/mongod --configsvr --dbpath /opt/mongodb3/data/configs/ --port 20000 --logpath /opt/mongodb3/data/configs/config.log --logappend --fork --keyFile keyfile
bin/mongos --configdb 10.163.119.212:20000 --port 30000 --chunkSize 5 --logpath /opt/mongodb3/data/mongos.log --logappend --fork --keyFile keyfile
7、添加分片数据库,配置分片规则。
mongos> use admin;
switched to db admin
db.runCommand({"enablesharding":"activity_info"});
mongos> use activity_info;
switched to db activity_info
mongos> db.activity_info.ensureIndex({"id":1});
db.activity_info.ensureIndex({"location":"2d"});
db.recommend_list.ensureIndex({"uid":1});
mongos> use admin;
switched to db admin
mongos> db.runCommand({"shardcollection":"activity_info.activity_info","key":{"id":1}})
{ "collectionsharded" : "activity_info.activity_info", "ok" : 1 }
mongos>
mongos>
mongos> db.runCommand({"shardcollection":"activity_info.recommend_list","key":{"uid":1}})
{ "collectionsharded" : "activity_info.recommend_list", "ok" : 1 }