在3个节点分别执行:
创建目录 $ sudo mkdir -p /data/mongodb/{data/{sh0,sh1},backup/{sh0,sh1},log/{sh0,sh1},conf/{sh0,sh1}}2.准备配置文件
第一个分片:
$ sudo vim /data/mongodb/conf/sh0/mongodb.conf # base port = 27010 maxConns = 800 filePermissions = 0700 fork = true noauth = true directoryperdb = true dbpath = /data/mongodb/data/sh0 pidfilepath = /data/mongodb/data/sh0/mongodb.pid oplogSize = 10 journal = true # security nohttpinterface = true rest = false # log logpath = /data/mongodb/log/sh0/mongodb.log logRotate = rename logappend = true slowms = 50 replSet = sh0 shardsvr = true第二个分片:
$ sudo vim /data/mongodb/conf/sh1/mongodb.conf # base port = 27011 maxConns = 800 filePermissions = 0700 fork = true noauth = true directoryperdb = true dbpath = /data/mongodb/data/sh1 pidfilepath = /data/mongodb/data/sh1/mongodb.pid oplogSize = 10 journal = true # security nohttpinterface = true rest = false # log logpath = /data/mongodb/log/sh1/mongodb.log logRotate = rename logappend = true slowms = 50 replSet = sh1 shardsvr = true3.启动Shard Server
$ sudo /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh0/mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 41492 child process started successfully, parent exiting $ sudo /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh1/mongodb.conf about to fork child process, waiting until server is ready for connections. forked process: 41509 child process started successfully, parent exiting $ ps aux | grep mongo | grep -v grep root 41492 0.5 0.0 518016 54604 ? Sl 10:09 0:00 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh0/mongodb.conf root 41509 0.5 0.0 516988 51824 ? Sl 10:09 0:00 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh1/mongodb.conf $ mongo --port 27010 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27010/test > bye $ mongo --port 27011 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27011/test > bye在3个节点分别执行:1.创建目录
$ sudo mkdir -p /data/mongodb/{data/cf0,backup/cf0,log/cf0,conf/cf0}2.准备配置文件
$ sudo vim /data/mongodb/conf/cf0/config.conf # base port = 27000 maxConns = 800 filePermissions = 0700 fork = true noauth = true directoryperdb = true dbpath = /data/mongodb/data/cf0 pidfilepath = /data/mongodb/data/cf0/config.pid oplogSize = 10 journal = true # security nohttpinterface = true rest = false # log logpath = /data/mongodb/log/cf0/config.log logRotate = rename logappend = true slowms = 50 configsvr = true3.启动
$ sudo /opt/mongodb/bin/mongod --config /data/mongodb/conf/cf0/config.conf about to fork child process, waiting until server is ready for connections. forked process: 41759 child process started successfully, parent exiting $ ps aux | grep mongo | grep -v grep root 41492 0.3 0.0 518016 54728 ? Sl 10:09 0:06 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh0/mongodb.conf root 41509 0.3 0.0 518016 54760 ? Sl 10:09 0:06 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh1/mongodb.conf root 41855 0.4 0.0 467828 51684 ? Sl 10:25 0:03 /opt/mongodb/bin/mongod --config /data/mongodb/conf/cf0/config.conf在3个节点分别执行:
1.创建目录
$ sudo mkdir -p /data/mongodb/{data/ms0,backup/ms0,log/ms0,conf/ms0}2.准备配置文件
$ sudo vim /data/mongodb/conf/ms0/mongos.conf # base port = 30000 maxConns = 800 filePermissions = 0700 fork = true pidfilepath = /data/mongodb/data/ms0/mongos.pid # log logpath = /data/mongodb/log/ms0/mongos.log logRotate = rename logappend = true configdb = 172.30.2.201:27000,172.30.2.202:27000,172.30.2.203:270003.启动
$ sudo /opt/mongodb/bin/mongos --config /data/mongodb/conf/ms0/mongos.conf about to fork child process, waiting until server is ready for connections. forked process: 42233 child process started successfully, parent exiting $ ps aux | grep mongo | grep -v grep root 41492 0.3 0.0 518016 54728 ? Sl 10:09 0:06 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh0/mongodb.conf root 41509 0.3 0.0 518016 54760 ? Sl 10:09 0:07 /opt/mongodb/bin/mongod --config /data/mongodb/conf/sh1/mongodb.conf root 41855 0.4 0.0 546724 37812 ? Sl 10:25 0:03 /opt/mongodb/bin/mongod --config /data/mongodb/conf/cf0/config.conf root 41870 0.4 0.0 546724 38188 ? Sl 10:25 0:03 /opt/mongodb/bin/mongod --conf root 42233 0.5 0.0 233536 10188 ? Sl 10:38 0:00 /opt/mongodb/bin/mongos --config /data/mongodb/conf/ms0/mongos.conf配置副本集的好处是为了高可用,配置单节点是我自己为了节省时间,后续添加节点和副本集的操作一样,分片的配置不需要修改,在任何一个节点执行,这里在node1上执行
分片一:
$ mongo --port 27010 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27010/test > use admin switched to db admin > cfg={_id:"sh0", members:[ {_id:0,host:"172.30.2.201:27010"}, {_id:1,host:"172.30.2.202:27010"}, {_id:2,host:"172.30.2.203:27010"} ] } { "_id" : "sh0", "members" : [ { "_id" : 0, "host" : "172.30.2.201:27010" }, { "_id" : 1, "host" : "172.30.2.202:27010" }, { "_id" : 2, "host" : "172.30.2.203:27010" } ] } > rs.initiate( cfg ); { "ok" : 1 } sh0:OTHER> rs.status() { "set" : "sh0", "date" : ISODate("2015-10-23T05:33:31.920Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "172.30.2.201:27010", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 270, "optime" : Timestamp(1445578404, 1), "optimeDate" : ISODate("2015-10-23T05:33:24Z"), "electionTime" : Timestamp(1445578408, 1), "electionDate" : ISODate("2015-10-23T05:33:28Z"), "configVersion" : 1, "self" : true }, { "_id" : 1, "name" : "172.30.2.202:27010", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 7, "optime" : Timestamp(0, 0), "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2015-10-23T05:33:30.289Z"), "lastHeartbeatRecv" : ISODate("2015-10-23T05:33:30.295Z"), "pingMs" : 1, "configVersion" : 1 }, { "_id" : 2, "name" : "172.30.2.203:27010", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 7, "optime" : Timestamp(0, 0), "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2015-10-23T05:33:30.289Z"), "lastHeartbeatRecv" : ISODate("2015-10-23T05:33:30.293Z"), "pingMs" : 1, "configVersion" : 1 } ], "ok" : 1 } sh0:PRIMARY> bye分片二:
$ mongo --port 27011 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27011/test > use admin switched to db admin > cfg={_id:"sh1", members:[ {_id:0,host:"172.30.2.201:27011"}, {_id:1,host:"172.30.2.202:27011"}, {_id:2,host:"172.30.2.203:27011"} ] } { "_id" : "sh1", "members" : [ { "_id" : 0, "host" : "172.30.2.201:27011" }, { "_id" : 1, "host" : "172.30.2.202:27011" }, { "_id" : 2, "host" : "172.30.2.203:27011" } ] } > rs.initiate( cfg ); { "ok" : 1 } sh1:OTHER> rs.status(); { "set" : "sh1", "date" : ISODate("2015-10-23T05:36:02.365Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "172.30.2.201:27011", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 406, "optime" : Timestamp(1445578557, 1), "optimeDate" : ISODate("2015-10-23T05:35:57Z"), "electionTime" : Timestamp(1445578561, 1), "electionDate" : ISODate("2015-10-23T05:36:01Z"), "configVersion" : 1, "self" : true }, { "_id" : 1, "name" : "172.30.2.202:27011", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 5, "optime" : Timestamp(0, 0), "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2015-10-23T05:36:01.168Z"), "lastHeartbeatRecv" : ISODate("2015-10-23T05:36:01.175Z"), "pingMs" : 0, "configVersion" : 1 }, { "_id" : 2, "name" : "172.30.2.203:27011", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 5, "optime" : Timestamp(0, 0), "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2015-10-23T05:36:01.167Z"), "lastHeartbeatRecv" : ISODate("2015-10-23T05:36:01.172Z"), "pingMs" : 0, "configVersion" : 1 } ], "ok" : 1 } sh1:PRIMARY> bye可见分片已经配置完成了
虽然也是3台机器,使用分片的好处是可以把两个分片的primary设置在不同的节点,这个可以分摊单节点的压力,当然有更多机器就可以把分片放到不同机器上。
文章转载自 开源中国社区[https://www.oschina.net]
相关资源:敏捷开发V1.0.pptx