MongoDB搭建副本集分片集群 大数据量存储(Windows版)

一,副本集与分片存储概述

       设定副本是一组mongodb保持相同数据集的过程。副本集提供冗余和高可用性,通过在不同数据库服务器上提供多个数据副本,达到一定程度的容错能力,以防止丢失单个数据库服务器。与MySQL的副本集相比,MongoDB的中的副本集配置十分便捷,且支持副本集中主服务器的自动选择。当主服务器宕机后,所有副本集会通过投票自动选择出一个新的主服务器,用户无需关心副本集中的主从服务器情况,只需对这个副本集进行操作即可。分片是一种跨多台机器分发数据的方法,MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署,MongoDB的分片群集包括以下组件:( 源自MongoDB的官网

  • 分片:每个分片包含分片数据的子集每个分片都可以部署为副本集。
  • mongos:充当查询路由器,提供客户端应用程序和分片集群之间的接口。
  • 配置服务器:存储群集的元数据和配置设置。从MongoDB 3.4开始,配置服务器必须部署为副本集(CSRS)。

二,基本结构(源自MongoDB的官网

                                                                 副本集结构(图一)    

         

                                                         分片集群结构(图二)

三,详细步骤

分片结构端口如下:

Shard Server 1:27020
Shard Server 2:27021
Shard Server 3:27022
Shard Server 4:27023
Config Server :27100
Route Process:40000

1.创建分片文件夹及日志文件:

  • C:\ Program Files \ MongoDB目录下创建shard文件夹
  • C:\ Program Files \ MongoDB \ shard目录下创建文件夹conf1(配置服务器副本集),conf2,log(日志文件),s0(副本集),s1,s2,s3
  • C:\ Program Files \ MongoDB \ shard \ log目录下创建日志文件conf1.log,cong2.log,route.log,s0.log,s1.log,s2.log,s3.log(日志文件创建方法:打开记事本另存为 - >保存类型“所有文件” - >文件名“conf1.log”)

2.创建分片副本集rs0(切记以下每个步骤运行的命令行程序在创建分片的整个过程都不​​能关闭):

(1)创建复制集:

命令行

                                                            图三

命令行

                                                           图四

(2)配置副本集rs0(不要关闭图三四,打开命令行):首先键入cd C:\ Program File \ MongoDB \ Server \ 4.0 \ bin,然后依次执行以下几步:                                                                           

> mongo localhost:27020 
> rs.initiate({_id: 'rs0', members: [{_id: 0, host: 'localhost:27020'}, {_id: 1, host: 'localhost:27021'}]}) 
> rs.isMaster()
> rs.add('localhost:27020')
> rs.add('localhost:27021')

3.创建分片副本集rs1:

(1)创建复制集:

命令行

                                                           图五

命令行

                                                            图六

(2)配置副本集rs1(不要关闭图五六,打开命令行):首先键入cd C:\ Program File \ MongoDB \ Server \ 4.0 \ bin,然后依次执行以下几步:                                                                                        

> mongo localhost:27022 
> rs.initiate({_id: 'rs0', members: [{_id: 0, host: 'localhost:27022'}, {_id: 1, host: 'localhost:27023'}]}) 
> rs.isMaster()
> rs.add('localhost:27022')
> rs.add('localhost:27023')

4.创建配置副本集的的conf

(1)创建复制集:

命令行

                                                              图七

命令行

                                                                图八

(2)配置副本集conf(不要关闭图七八,打开命令行):首先键入cd C:\ Program File \ MongoDB \ Server \ 4.0 \ bin,然后依次执行以下几步:     

> mongo localhost:27100 
> rs.initiate({_id: 'conf', members: [{_id: 0, host: 'localhost:27100'}, {_id: 1, host: 'localhost:27101'}]}) 
> rs.isMaster()
> rs.add('localhost:27100')
> rs.add('localhost:27101')

5.创建路线

(1)创建路由服务器

命令行

(2)设置分片

键入cd C:\ Program File \ MongoDB \ Server \ 4.0 \ bin,然后依次执行以下几步:                                                                                                

> mongo localhost:40000
> use admin
> db.runCommand({ addshard: 'rs0/localhost:27020,localhost:27021'})
> db.runCommand({ addshard: 'rs1/localhost:27030,localhost:27031'})
> db.runCommand({ enablesharding: 'test'})
> db.runCommand({ shardcollection: 'test.user', key: {name: 1}})

四,环境配置总结

       或许以上每个步骤都有坑,在此之前小白根据网上各种配置方案都没配置成功(也许是小白理解能力...),不过还好最后通过结合文档对分片结构建立的理解,实现了环境搭建,现在看来最重要的还是要自己多思考,理清思路,不要盲从网上的教程,尤其注重内容的时效性,第一时间最好查看官方文档(虽然写得也不是很清楚,但至少版本与时俱进,配置思路清晰),这样大概会少走许多弯路吧...

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

”PANDA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值