21.38 mongodb分片搭建(中)

21.38 mongodb分片搭建(中)

分片搭建–分片配置
添加配置文件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

21.39 mongodb分片搭建(下)

分片搭建–配置路由服务器rest

  • 添加配置文件(三台机器都操做)
  • vim /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.133.130:21000,192.168.133.132:21000,192.168.133.133:21000 #监听的配置服务器,只能有1个或者3个,configs为配置服务器的副本集名字
    maxConns=20000 #设置最大链接数
  • 启动mongos服务,注意命令,前面都是mongod,这里是mongos
  • mongos -f /etc/mongod/mongos.conf

分片搭建–启用分片code

  • 登陆任何一台20000端口
  • mongo --port 20000
  • 把全部分片和路由器串联
    sh.addShard("shard1/192.168.133.130:27001,192.168.133.132:27001,192.168.133.133:27001")
    sh.addShard("shard2/192.168.133.130:27002,192.168.133.132:27002,192.168.133.133:27002")
    sh.addShard("shard3/192.168.133.130:27003,192.168.133.132:27003,192.168.133.133:27003")
  • 查看集群状态
    sh.status()
[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
##启动成功;
相关文章
相关标签/搜索