千家信息网

Mongodb集群搭建

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,共2台服务器,每台上面各一个路由,一个配置,一个分片,mongodb版本3.4服务器1:10.2.4.214服务器2:10.2.4.2151.首先编写2台服务器的配置文件,并将配置文件中的路径文件夹建
千家信息网最后更新 2026年11月01日Mongodb集群搭建

共2台服务器,每台上面各一个路由,一个配置,一个分片,mongodb版本3.4


服务器1:10.2.4.214

服务器2:10.2.4.215


1.首先编写2台服务器的配置文件,并将配置文件中的路径文件夹建立好

214的路由配置文件mongodb_rout.conf:

net:   port: 5000   ipv6: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/route.log"   logAppend: trueprocessManagement:   fork: truesharding:   configDB: rsConf/10.2.4.214:5100,10.2.4.215:5100...

214的配置配置文件mongodb_cfg.conf:

net:   port: 5100   ipv6: truestorage:   dbPath: "/data/mongodb/formal_5000/data/config"   directoryPerDB: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/config.log"   logAppend: truestorage:   journal:      enabled: trueprocessManagement:   fork: truesharding:   clusterRole: configsvrreplication:   replSetName: rsConf...

214的分片配置文件mongodb_s0.conf:

storage:   dbPath: "/data/mongodb/formal_5000/data/s0"   directoryPerDB: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/s0.log"   logAppend: truenet:   port: 5010   ipv6: trueprocessManagement:   fork: truestorage:   journal:      enabled: truereplication:   replSetName: rsShardAsharding:          clusterRole: shardsvr...


215的路由配置文件mongodb_rout.conf:

net:   port: 5000   ipv6: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/route.log"   logAppend: trueprocessManagement:   fork: truesharding:   configDB: rsConf/10.2.4.214:5100,10.2.4.215:5100...

215的配置配置文件mongodb_cfg.conf:

net:   port: 5100   ipv6: truestorage:   dbPath: "/data/mongodb/formal_5000/data/config"   directoryPerDB: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/config.log"   logAppend: truestorage:   journal:      enabled: trueprocessManagement:   fork: truesharding:   clusterRole: configsvrreplication:   replSetName: rsConf...

215的分片配置文件mongodb_s0.conf:

storage:   dbPath: "/data/mongodb/formal_5000/data/s0"   directoryPerDB: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/s0.log"   logAppend: truenet:   port: 5010   ipv6: trueprocessManagement:   fork: truestorage:   journal:      enabled: truereplication:   replSetName: rsShardBsharding:          clusterRole: shardsvr...

在2台服务器上执行下面命令建立文件夹,否则mongodb无法启动

mkdir -p /data/mongodb/formal_5000/log/mkdir -p /data/mongodb/formal_5000/data/config/mkdir -p /data/mongodb/formal_5000/data/s0


2.启动2台配置服务,并配置成副本集

#在2台服务器上都启动配置服务numactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_cfg.conf#进入其中一台服务进行配置mongo --port 5100config={_id:"rsConf",members:[        {_id:0,host:"10.2.4.214:5100"},        {_id:1,host:"10.2.4.215:5100"}]}rs.initiate(config)#查看副本集配置是否成功rs.status()

3.启动2台分片和路由服务,并配置

#在2台服务器上都启动分片服务numactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_s0.conf#在2台服务器上都启动路由服务numactl --interleave=all  mongos -f /etc/mongodb/formal_5000/mongodb_rout.conf#进入214分片并配置分片成副本集的primarymongo --port 5010config={_id:"rsShardA",members:[        {_id:0,host:"10.2.4.214:5010"}]}rs.initiate(config)#进入215分片并配置分片成副本集的primarymongo --port 5010config={_id:"rsShardB",members:[        {_id:0,host:"10.2.4.215:5010"}]}rs.initiate(config)#进入路由并配置分片mongo --port 5000use admindb.runCommand({addshard:"rsShardA/10.2.4.214:5010",name:"shard_0",maxSize:0})db.runCommand({addshard:"rsShardB/10.2.4.215:5010",name:"shard_1",maxSize:0})#查看分片配置情况sh.status()

4.设置monitor_center可分片

use monitor_centeruse admindb.runCommand({enablesharding:"monitor_center"})

5.使用Studio-3T连接路由、配置和分片并建立用户(这里教程省略)

6.关闭数据库

#先关路由,进入2台服务器的路由mongo --port 5000use admindb.shutdownServer()#再关分片,进入2台服务器的分片mongo --port 5010use admindb.shutdownServer({force:true})#最后关配置,进入2台服务器的配置mongo --port 5100use admindb.shutdownServer()

7.将keyfile加入到2台服务器的路由、配置、分片的配置文件中的最后一行里,如下所示:

214的路由配置文件mongodb_rout.conf:


net:   port: 5000   ipv6: truesystemLog:   destination: file   path: "/data/mongodb/formal_5000/log/route.log"   logAppend: trueprocessManagement:   fork: truesharding:   configDB: rsConf/10.2.4.214:5100,10.2.4.215:5100security:   keyFile: "/data/mongodb/formal_5000/key/mongodb_key"...

其他配置文件类似,都需要添加keyfile

#生成keyFilemkdir -p /data/mongodb/formal_5000/key/cd /data/mongodb/formal_5000/keyecho -e "formal mongodb keyFile" > mongodb_keychmod 600 /data/mongodb/formal_5000/key/mongodb_key

8.最后依次启动配置、分片、路由

numactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_cfg.confnumactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_s0.confnumactl --interleave=all  mongos -f /etc/mongodb/formal_5000/mongodb_rout.conf


PS:

1.平衡器

sh.setBalancerState(true) #启动平衡器sh.setBalancerState(false) #关闭平衡器sh.getBalancerState() #查看平衡器的状态sh.isBalancerRunning() #查看平衡器当前是否在运行#设置平衡器启动时间范围,首先确保平衡器是启动状态db.settings.update({ _id: "balancer" },{ $set: { activeWindow : { start : "21:00", stop : "08:00" } } },{ upsert: true })#取消平衡器启动时间范围db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })

2.建表

use monitor_centerdb.createCollection("origdata_20171024") #建表db.origdata_20171024.createIndex({ mac: 1, time: 1},{ background: true}) #建索引use admindb.runCommand({shardcollection:"monitor_center.origdata_20171024",key:{mac:1,time:1}}) #集合是否允许分片db.runCommand({moveChunk:"monitor_center.origdata_20171024",bounds:[{mac:MinKey,time:MinKey},{mac:MaxKey,time:MaxKey}],to:"shard_1"}) #将集合手动移到分片1

3.表的迁移

sh.enableBalancing("monitor_center.origdata_20171024") #开启该集合的数据平衡sh.disableBalancing("monitor_center.origdata_20171024") #关闭该集合的数据平衡db.getSiblingDB("config").collections.findOne({_id : "monitor_center.origdata_20171024"}).noBalance #检查该集合是否启动了数据平衡


配置 服务 文件 服务器 路由 平衡器 副本 数据 文件夹 时间 状态 范围 成功 一行 命令 情况 手动 教程 数据库 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网医疗科技 互联网科技小贷 互联网科技媒体 上海喔噻互联网科技 美国互联网黑科技 广西拼得多互联网科技有限公司 蓝色互联网科技 青岛中康互联网医疗科技有限公司 互联网科技实习生岗位职责 福州新华互联网科技学校 知乎 互联网科技有哪些公司 开一家科技互联网公司需要多少钱 南通创西澳互联网科技有限公司 互联网公司高科技产品 陕西云淼互联网科技公司 萌小萌互联网科技河南有限公司 容联科技互联网电商 中国新注册互联网科技 张家口科技产业互联网平台 北京军民互联网科技公司 互联网科技缩写 互联网女皇 腾讯科技 互联网科技革命什么开始 广西互联网科技孵化中心 北京市互联网新科技 中天科技中国工业互联网 富国互联网金融科技混合基金 35岁以上互联网科技行业 广州互联网高科技取餐柜 长沙渺峰互联网科技有限公司
0