分片搭建–分片配置
添加配置文件shard1.conf(三台机器都操做)web
vim /etc/mongod/shard1.conf //加入以下内容 pidfilepath = /var/run/mongodb/shard1.pid dbpath = /data/mongodb/shard1/data logpath = /data/mongodb/shard1/log/shard1.log logappend = true bind_ip = 0.0.0.0 ##生产环境,最好设为绑定ip本机;由于咱们没有设密码 port = 27001 fork = true httpinterface=true #打开web监控 rest=true replSet=shard1 #副本集名称 shardsvr = true #declare this is a shard db of a cluster; maxConns=20000 #设置最大链接数
添加配置文件shard2.conf(三台机器都操做)mongodb
vim /etc/mongod/shard2.conf //加入以下内容 pidfilepath = /var/run/mongodb/shard2.pid dbpath = /data/mongodb/shard2/data logpath = /data/mongodb/shard2/log/shard2.log logappend = true bind_ip = 0.0.0.0 port = 27002 fork = true httpinterface=true #打开web监控 rest=true replSet=shard2 #副本集名称 shardsvr = true #declare this is a shard db of a cluster; maxConns=20000 #设置最大链接数
添加配置文件shard3.conf(三台机器都操做)shell
vim /etc/mongod/shard3.conf //加入以下内容 pidfilepath = /var/run/mongodb/shard3.pid dbpath = /data/mongodb/shard3/data logpath = /data/mongodb/shard3/log/shard3.log logappend = true bind_ip = 0.0.0.0 port = 27003 fork = true httpinterface=true #打开web监控 rest=true replSet=shard3 #副本集名称 shardsvr = true #declare this is a shard db of a cluster; maxConns=20000 #设置最大链接数
启动shard1vim
mongod -f /etc/mongod/shard1.conf //三台机器都要操做 登陆130或者132任何一台机器的27001端口初始化副本集,133之因此不行,是由于shard1咱们把133这台机器的27001端口做为了仲裁节点 mongo --port 27001 use admin config = { _id: "shard1", members: [ {_id : 0, host : "192.168.133.130:27001"}, {_id: 1,host : "192.168.133.132:27001"},{_id : 2, host : "192.168.133.133:27001",arbiterOnly:true}] } rs.initiate(config)
启动shard2服务器
mongod -f /etc/mongod/shard2.conf //三台机器都要操做 登陆132或者133任何一台机器的27002端口初始化副本集,130之因此不行,是由于shard2咱们把130这台机器的27002端口做为了仲裁节点 mongo --port 27002 use admin config = { _id: "shard2", members: [ {_id : 0, host : "192.168.133.130:27002" ,arbiterOnly:true},{_id : 1, host : "192.168.133.132:27002"},{_id : 2, host : "192.168.133.133:27002"}] } rs.initiate(config)
启动shard3app
mongod -f /etc/mongod/shard3.conf //三台机器都要操做 登陆130或者133任何一台机器的27003端口初始化副本集,132之因此不行,是由于shard3咱们把132这台机器的27003端口做为了仲裁节点 mongo --port 27003 use admin config = { _id: "shard3", members: [ {_id : 0, host : "192.168.133.130:27003"}, {_id : 1, host : "192.168.133.132:27003", arbiterOnly:true}, {_id : 2, host : "192.168.133.133:27003"}] } rs.initiate(config)
完成了副本集shard一、二、3的操做以后,接下来就是配置路由服务器;this
分片搭建–配置路由服务器rest
分片搭建–启用分片code
[root@Dasoncheng ~]# cat /etc/mongod/mongos.conf pidfilepath = /var/run/mongodb/mongos.pid logpath = /data/mongodb/mongos/log/mongos.log logappend = true bind_ip = 0.0.0.0 port = 20000 fork = true configdb = configs/192.168.60.11:21000,192.168.60.12:21000,192.168.60.13:21000 #监听的配置服务器,只能有1个或者3个,configs为配置服务器的副本集名字 maxConns=20000 #设置最大链接数 [root@Dasoncheng ~]# mongos -f /etc/mongod/mongos.conf about to fork child process, waiting until server is ready for connections. forked process: 3379 child process started successfully, parent exiting [root@Dasoncheng ~]# mongo --port 20000 MongoDB shell version v3.4.9 connecting to: mongodb://127.0.0.1:20000/ MongoDB server version: 3.4.9 mongos> sh.addShard("shard1/192.168.60.11:27001,192.168.60.12:27001,192.168.60.13:27001") { "shardAdded" : "shard1", "ok" : 1 } mongos> sh.addShard("shard2/192.168.60.11:27002,192.168.60.12:27002,192.168.60.13:27002") { "shardAdded" : "shard2", "ok" : 1 } mongos> sh.addShard("shard3/192.168.60.11:27003,192.168.60.12:27003,192.168.60.13:27003") { "shardAdded" : "shard3", "ok" : 1 } mongos> sh.status() --- Sharding Status --- sharding version: { "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("59e957b4b1833892fcc37ec7") } shards: { "_id" : "shard1", "host" : "shard1/192.168.60.11:27001,192.168.60.12:27001", "state" : 1 } { "_id" : "shard2", "host" : "shard2/192.168.60.12:27002,192.168.60.13:27002", "state" : 1 } { "_id" : "shard3", "host" : "shard3/192.168.60.11:27003,192.168.60.13:27003", "state" : 1 } active mongoses: "3.4.9" : 1 autosplit: Currently enabled: yes balancer: Currently enabled: yes Currently running: no Balancer lock taken at Fri Oct 20 2017 14:44:12 GMT+0800 (CST) by ConfigServer:Balancer Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: No recent migrations databases:
有一个小错误:server
[root@Dasoncheng ~]# mongos -f /etc/mongod/mongos.conf ##启动mongos报错,只有60.11启动了;根据报错提示 查看了mongos.conf发现逗号","后面多了一个空格;我删掉从新启动 又报错 ,看下面 2017-10-20T15:38:02.214+0800 I NETWORK [main] getaddrinfo(" 192.168.60.12") failed: Name or service not known 2017-10-20T15:38:02.330+0800 I NETWORK [main] getaddrinfo(" 192.168.60.13") failed: Name or service not known about to fork child process, waiting until server is ready for connections. forked process: 3316 child process started successfully, parent exiting [root@Dasoncheng ~]# cat /etc/mongod/mongos.conf pidfilepath = /var/run/mongodb/mongos.pid logpath = /data/mongodb/mongos/log/mongos.log logappend = true bind_ip = 0.0.0.0 port = 20000 fork = true configdb = configs/192.168.60.11:21000, 192.168.60.12:21000, 192.168.60.13:21000 #监听的配置服务器,只能有1个或者3个,configs为配置服务器的副本集名字 maxConns=20000 #设置最大链接数 [root@Dasoncheng ~]# !v vim /etc/mongod/mongos.conf [root@Dasoncheng ~]# mongos -f /etc/mongod/mongos.conf ##在这里启动报错,我就把进程mongos杀死了,pkill mongos=killall monogs about to fork child process, waiting until server is ready for connections. forked process: 3354 ERROR: child process failed, exited with error number 48 [root@Dasoncheng ~]# pkill mongos [root@Dasoncheng ~]# mongos -f /etc/mongod/mongos.conf about to fork child process, waiting until server is ready for connections. forked process: 3379 child process started successfully, parent exiting ##启动成功;