MongoDB 集群搭建配置示例

本文详细介绍了一种在四台Linux系统上搭建一主三从MongoDB集群的方法,包括节点环境准备、配置文件设定、各节点角色分配及具体部署步骤,最后通过实例验证了分片功能的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要示范了如何使用4台Linux系统搭建一主三从的Mongodb集群。

1.物理环境准备

节点信息:node01,node02,node03,node04

节点环境:节点互通,且配置了主机名解析

2.MongoDB配置目标

配置文件数据库名称:c1
分片名称:S1,S2,S3
node01:c1
node02:S1,S2
node03:S2,S3
node04:S3,S1

部署结构如下图所示

在各个主机上执行如下指定命令,每行的node02/node03/node04不是命令,只表示在哪一台主机上执行。

node02: mongod --shardsvr --replSet S1 --port 27017 --dbpath /opt/mongodb/S1 --logpath /opt/mongodb/S1.log  --fork
node02: mongod --shardsvr --replSet S2 --port 27018 --dbpath /opt/mongodb/S2 --logpath /opt/mongodb/S2.log  --fork

node03: mongod --shardsvr --replSet S2 --port 27017 --dbpath /opt/mongodb/S2 --logpath /opt/mongodb/S2.log  --fork
node03: mongod --shardsvr --replSet S3 --port 27018 --dbpath /opt/mongodb/S3 --logpath /opt/mongodb/S3.log  --fork
       
node04: mongod --shardsvr --replSet S3 --port 27017 --dbpath /opt/mongodb/S3 --logpath /opt/mongodb/S3.log  --fork
node04: mongod --shardsvr --replSet S1 --port 27018 --dbpath /opt/mongodb/S1 --logpath /opt/mongodb/S1.log  --fork


node01: mongod --configsvr --replSet c1 --port 27117 --dbpath /opt/mongodb/c1 --logpath /opt/mongodb/c1.log  --fork

node01:ps -aux|grep mongodb

node01:mongo --port 27117
rs.initiate({_id:"c1",members:[{_id:0,host:"node01:27117"}]})

node02: mongo --port 27017
rs.initiate({_id:"S1",members:[{_id:0,host:"node02:27017"},{_id:1,host:"node04:27018"}]})

node03: mongo --port 27017
rs.initiate({_id:"S2",members:[{_id:0,host:"node03:27017"},{_id:1,host:"node02:27018"}]})

node04: mongo --port 27017
rs.initiate({_id:"S3",members:[{_id:0,host:"node04:27017"},{_id:1,host:"node03:27018"}]})

node01: mongos --port 27118 --configdb c1/node01:27117 --logpath /opt/mongodb/os.log --fork

 连接MongoDB集群并测试分片功能。

node01:mongo --port 27118            #连接MongoDB集群

	sh.addShard("S1/node02:27017")
	sh.addShard("S2/node03:27017")
	sh.addShard("S3/node04:27017")
	use db1
	db.cc1.insert({name:"1"})
	db.cc1.insert({name:"2"})
	db.cc1.insert({name:"3"})
	
	db.stats()
	sh.status()

	sh.enableSharding("db2") 
	sh.shardCollection("db2.cc2",{name:"hashed"})
    
	use db2
	db.cc2.insert({name:"1"})
	db.cc2.insert({name:"2"})
	db.cc2.insert({name:"3"})
	
	db.stats()
	sh.status()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值