MongoDB分片架構圖:
MongoDB分片相關概念:linux
這一小節搭建了config servers
分片搭建 -服務器規劃:mongodb
分片搭建 – 建立目錄:shell
分片搭建–config server配置:數據庫
[root@Dasoncheng ~]# mkdir -p /data/mongodb/mongos/log [root@Dasoncheng ~]# mkdir -p /data/mongodb/config/{data,log} [root@Dasoncheng ~]# mkdir -p /data/mongodb/shard1/{data,log} [root@Dasoncheng ~]# mkdir -p /data/mongodb/shard2/{data,log} [root@Dasoncheng ~]# mkdir -p /data/mongodb/shard3/{data,log} ##分別在三臺機器上建立各個角色所須要的目錄; [root@Dasoncheng ~]# mkdir /etc/mongod/ [root@Dasoncheng ~]# vim /etc/mongod/config.conf ##建立config-servers的配置文件夾 及配置文件;下面是編輯內容 [root@Dasoncheng ~]# cat /etc/mongod/config.conf pidfilepath = /var/run/mongodb/configsrv.pid dbpath = /data/mongodb/config/data logpath = /data/mongodb/config/log/congigsrv.log logappend = true bind_ip = 192.168.60.11 port = 21000 fork = true configsvr = true #declare this is a config db of a cluster; replSet=configs #副本集名稱 maxConns=20000 #設置最大鏈接數 [root@Dasoncheng ~]# mongod -f /etc/mongod/config.conf ##啓動config-server,三臺機器都啓動 about to fork child process, waiting until server is ready for connections. forked process: 2749 child process started successfully, parent exiting [root@Dasoncheng ~]# ps aux |grep mongod mongod 2292 1.7 9.4 1524868 94180 ? Sl 08:03 1:54 /usr/bin/mongod -f /etc/mongod.conf root 2749 5.3 4.2 1082412 42464 ? Sl 09:52 0:00 mongod -f /etc/mongod/config.conf root 2783 0.0 0.0 112664 964 pts/1 S+ 09:53 0:00 grep --color=auto mongod [root@Dasoncheng ~]# netstat -lntp |grep mongod tcp 0 0 192.168.60.11:21000 0.0.0.0:* LISTEN 2749/mongod tcp 0 0 192.168.60.11:27017 0.0.0.0:* LISTEN 2292/mongod tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2292/mongod [root@Dasoncheng ~]# mongo --host 192.168.60.11 --port 21000 ##登陸注意; MongoDB shell version v3.4.9 connecting to: mongodb://192.168.60.11:21000/ MongoDB server version: 3.4.9 > use admin switched to db admin > config = { _id: "configs", members: [ {_id : 0, host : "192.168.60.11:21000"},{_id : 1, host : "192.168.60.12:21000"},{_id : 2, host : "192.168.60.13:21000"}] } { "_id" : "configs", "members" : [ { "_id" : 0, "host" : "192.168.60.11:21000" }, { "_id" : 1, "host" : "192.168.60.12:21000" }, { "_id" : 2, "host" : "192.168.60.13:21000" } ] } > rs.initiate(config) { "ok" : 1 } configs:SECONDARY> rs.status() { "set" : "configs", "date" : ISODate("2017-10-20T01:56:12.059Z"), "myState" : 1, "term" : NumberLong(1), "configsvr" : true, "heartbeatIntervalMillis" : NumberLong(2000), "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "readConcernMajorityOpTime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "appliedOpTime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "durableOpTime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) } }, "members" : [ { "_id" : 0, "name" : "192.168.60.11:21000", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 198, "optime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "optimeDate" : ISODate("2017-10-20T01:56:04Z"), "infoMessage" : "could not find member to sync from", "electionTime" : Timestamp(1508464562, 1), "electionDate" : ISODate("2017-10-20T01:56:02Z"), "configVersion" : 1, "self" : true }, { "_id" : 1, "name" : "192.168.60.12:21000", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20, "optime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "optimeDurable" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "optimeDate" : ISODate("2017-10-20T01:56:04Z"), "optimeDurableDate" : ISODate("2017-10-20T01:56:04Z"), "lastHeartbeat" : ISODate("2017-10-20T01:56:10.920Z"), "lastHeartbeatRecv" : ISODate("2017-10-20T01:56:08.588Z"), "pingMs" : NumberLong(0), "syncingTo" : "192.168.60.11:21000", "configVersion" : 1 }, { "_id" : 2, "name" : "192.168.60.13:21000", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 20, "optime" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "optimeDurable" : { "ts" : Timestamp(1508464564, 21), "t" : NumberLong(1) }, "optimeDate" : ISODate("2017-10-20T01:56:04Z"), "optimeDurableDate" : ISODate("2017-10-20T01:56:04Z"), "lastHeartbeat" : ISODate("2017-10-20T01:56:10.920Z"), "lastHeartbeatRecv" : ISODate("2017-10-20T01:56:11.495Z"), "pingMs" : NumberLong(0), "syncingTo" : "192.168.60.11:21000", "configVersion" : 1 } ], "ok" : 1 }