mongoDB搭建集群与分片

MongoDB集群搭建与分片

1.集群搭建(三台各一遍)

注意:一定要关闭防火墙

  • 注意自己的三台机子ip地址,这里我的ip是(***.***.***.135/136/137)

1.创建文件

mkdir -p /opt/apt/mongodb/conf

mkdir -p /opt/apt/mongodb/mongos/log

mkdir -p /opt/apt/mongodb/config/data

mkdir -p /opt/apt/mongodb/config/log

mkdir -p /opt/apt/mongodb/shard1/data

mkdir -p /opt/apt/mongodb/shard1/log

mkdir -p /opt/apt/mongodb/shard2/data

mkdir -p /opt/apt/mongodb/shard2/log

mkdir -p /opt/apt/mongodb/shard3/data

mkdir -p /opt/apt/mongodb/shard3/log

2.config server配置服务器

#配置文件内容
pidfilepath=/opt/apt/mongodb/config/log/configsrv.pid
dbpath=/opt/apt/mongodb/config/data
logpath=/opt/apt/mongodb/config/log/congigsrv.log
logappend=true
bind_ip=0.0.0.0
port=21000
fork = true
configsvr=true
#副本集名称
replSet=configs
#设置最大连接数
maxConns=20000

3.启动服务

mongod -f  /opt/apt/mongodb/conf/config.conf

4.定义副本集配置(任意一台启动执行一次)

#启动MongoDB
mongo --port 21000
config={_id:"configs",members:[
{_id:0,host:"192.168.232.135:21000"},
{_id:1,host:"192.168.232.136:21000"},
{_id:2,host:"192.168.232.137:21000"}
]
}
#初始化
rs.initiate(config)

2.分片操作(三台 各一遍)

1.分片1修改配置文件
vi  /opt/apt/mongodb/conf/shard1.conf
#配置文件内容
pidfilepath=/opt/apt/mongodb/shard1/log/shard1.pid
dbpath=/opt/apt/mongodb/shard1/data
logpath=/opt/apt/mongodb/shard1/log/shard1.log
logappend=true
bind_ip=0.0.0.0
port=27001
fork = true
shardsvr=true
#副本集名称
replSet=shard1
#设置最大连接数
maxConns=20000

2.启动服务

mongod -f /opt/apt/mongodb/conf/shard1.conf

3.启动服务器初始化副本集

mongo --port 27001

4.定义副本集配置

config={_id:"shard1",members:[
{_id:0,host:"192.168.232.135:21001"},
{_id:1,host:"192.168.232.136:21001"},
{_id:2,host:"192.168.232.137:21001",arbiterOnly:true}
]
}
#初始化
rs.initiate(config)
分片2修改配置文件
vi  /opt/apt/mongodb/conf/shard2.conf
#配置文件内容
pidfilepath=/opt/apt/mongodb/shard2/log/shard2.pid
dbpath=/opt/apt/mongodb/shard2/data
logpath=/opt/apt/mongodb/shard2/log/shard2.log
logappend=true
bind_ip=0.0.0.0
port=27002
fork = true
shardsvr=true
#副本集名称
replSet=shard2
#设置最大连接数
maxConns=20000

2.启动服务

mongod -f /opt/apt/mongodb/conf/shard2.conf

3.启动服务器初始化副本集

mongo --port 27002

4.定义副本集配置

config={_id:"shard2",members:[
{_id:0,host:"192.168.232.135:21002"},
{_id:1,host:"192.168.232.136:21002"},
{_id:2,host:"192.168.232.137:21002"}
]
}
#初始化
rs.initiate(config)
分片3修改配置文件
#编辑文件
vi  /opt/apt/mongodb/conf/shard3.conf
#配置文件内容
pidfilepath=/opt/apt/mongodb/shard3/log/shard3.pid
dbpath=/opt/apt/mongodb/shard3/data
logpath=/opt/apt/mongodb/shard3/log/shard3.log
logappend=true
bind_ip=0.0.0.0
port=27003
fork = true
shardsvr=true
#副本集名称
replSet=shard3
#设置最大连接数
maxConns=20000

2.启动服务

mongod -f /opt/apt/mongodb/conf/shard3.conf

3.启动服务器初始化副本集

mongo --port 27003

4.定义副本集配置

config={
_id:"shard3",
members:[
{_id:0,host:"192.168.232.135:27003"},
{_id:1,host:"192.168.232.136:27003",arbiterOnly:true},
{_id:2,host:"192.168.232.137:27003"}
]
}
#初始化
rs.initiate(config)

3.配置路由服务器mongos(每台各一遍)

vi  /opt/apt/mongodb/conf/mongos.conf
#配置文件内容
pidfilepath=/opt/apt/mongodb/mongos/log/mongos.pid
logpath=/opt/apt/mongodb/mongos/log/mongos.log
logappend=true
bind_ip=0.0.0.0
port=20000
fork = true
#监视的配置服务器,只能有一个或者3个,configs为配置服务器的副本集名字
configdb=configs/192.168.232.135:21000,192.168.232.136:21000,192.168.232.137:21000
#设置最大连接数
maxConns=20000

2.启动服务

mongos -f /opt/apt/mongodb/conf/mongos.conf

3.测试

mongo --port 20000
#使用admin数据库
use admin
#串联路由服务器与分配副本集
sh.addShard("shard1/192.168.232.135:27001,192.168.232.136:27001,192.168.232.137:27001")
sh.addShard("shard2/192.168.232.135:27002,192.168.232.136:27002,192.168.232.137:27002")
sh.addShard("shard3/192.168.232.135:27003,192.168.232.136:27003,192.168.232.137:27003")
#查看集群状态
sh.status()

4.测试分片结果

#指定testdb分片生效
db.runCommand({enablesharding:"testdb"})
#指定数据库里需要分片的集合和片键
db.runCommand({shardcollection:"testdb.table1",key:{id:1}})

#进入use testdb数据库
use testdb
#添加测试数据
for(var i=1;i<=100000;i++)db.table1.save({id:i,"test1":"testval1"})
#查看
db.table1.stats()


#关闭服务
killall mongod
killall mongos
发布了13 篇原创文章 · 获赞 9 · 访问量 441

猜你喜欢

转载自blog.csdn.net/weixin_44961387/article/details/105625524