重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/route.log"    logAppend: true processManagement:    fork: true sharding:    configDB: rsConf/10.2.4.214:5100,10.2.4.215:5100 ...

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

net:    port: 5100    ipv6: true storage:    dbPath: "/data/mongodb/formal_5000/data/config"    directoryPerDB: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/config.log"    logAppend: true storage:    journal:       enabled: true processManagement:    fork: true sharding:    clusterRole: configsvr replication:    replSetName: rsConf ...

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

storage:    dbPath: "/data/mongodb/formal_5000/data/s0"    directoryPerDB: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/s0.log"    logAppend: true net:    port: 5010    ipv6: true processManagement:    fork: true storage:    journal:       enabled: true replication:    replSetName: rsShardA sharding:    clusterRole: shardsvr ...

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

net:    port: 5000    ipv6: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/route.log"    logAppend: true processManagement:    fork: true sharding:    configDB: rsConf/10.2.4.214:5100,10.2.4.215:5100 ...

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

net:    port: 5100    ipv6: true storage:    dbPath: "/data/mongodb/formal_5000/data/config"    directoryPerDB: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/config.log"    logAppend: true storage:    journal:       enabled: true processManagement:    fork: true sharding:    clusterRole: configsvr replication:    replSetName: rsConf ...

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

storage:    dbPath: "/data/mongodb/formal_5000/data/s0"    directoryPerDB: true systemLog:    destination: file    path: "/data/mongodb/formal_5000/log/s0.log"    logAppend: true net:    port: 5010    ipv6: true processManagement:    fork: true storage:    journal:       enabled: true replication:    replSetName: rsShardB sharding:    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 5100 config={_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分片并配置分片成副本集的primary mongo --port 5010 config={_id:"rsShardA",members:[ {_id:0,host:"10.2.4.214:5010"} ]} rs.initiate(config) #进入215分片并配置分片成副本集的primary mongo --port 5010 config={_id:"rsShardB",members:[ {_id:0,host:"10.2.4.215:5010"} ]} rs.initiate(config) #进入路由并配置分片 mongo --port 5000 use admin db.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_center use admin db.runCommand({enablesharding:"monitor_center"})

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

6.关闭数据库

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

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

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

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

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

#生成keyFile mkdir -p /data/mongodb/formal_5000/key/ cd /data/mongodb/formal_5000/key echo -e "formal mongodb keyFile" > mongodb_key chmod 600 /data/mongodb/formal_5000/key/mongodb_key

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

numactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_cfg.conf numactl --interleave=all  mongod -f /etc/mongodb/formal_5000/mongodb_s0.conf numactl --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_center db.createCollection("origdata_20171024") #建表 db.origdata_20171024.createIndex({ mac: 1, time: 1},{ background: true}) #建索引 use admin db.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 #检查该集合是否启动了数据平衡

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Mongodb集群搭建-创新互联
浏览路径:http://cqcxhl.cn/article/ceggpi.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP