Mongodb集群搭建
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,共2台服务器,每台上面各一个路由,一个配置,一个分片,mongodb版本3.4服务器1:10.2.4.214服务器2:10.2.4.2151.首先编写2台服务器的配置文件,并将配置文件中的路径文件夹建
千家信息网最后更新 2025年11月16日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"}) #将集合手动移到分片13.表的迁移
sh.enableBalancing("monitor_center.origdata_20171024") #开启该集合的数据平衡sh.disableBalancing("monitor_center.origdata_20171024") #关闭该集合的数据平衡db.getSiblingDB("config").collections.findOne({_id : "monitor_center.origdata_20171024"}).noBalance #检查该集合是否启动了数据平衡
配置
服务
文件
服务器
路由
平衡器
副本
数据
文件夹
时间
状态
范围
成功
一行
命令
情况
手动
教程
数据库
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2015天津软件开发大赛
平谷区品牌软件开发范围
dos中创建数据库流程
斯诺登事件对网络安全影响
苹果系统提示无法连接服务器
2014网络安全报告
华为ai数据库开源
会员服务器收费标准
怎样避免服务器指令信息重复刷新
数据库实体层
怎样在数据库中设置时间
比较数据库增量数据
软件开发与运行环境
坦克世界服务器坏了怎么办
e3 1230支持服务器内存
eps数据平台试用数据库
名称数据库
厦门亨达海天网络技术
软件开发可以用数学知识吗
电子软件开发大学
数据库的数据模型可分
宁波网络安全准入控制系统推荐
jsonp服务器端
浙江云图网络技术
江苏时代网络技术分类资费
西邮无线网络安全技术实验室
戴尔服务器加装显卡
崩坏三不同服务器能联机打委托吗
广州大学数学网络安全
服务器无法管理