`

搭建Mongodb集群:分片Sharding+副本集Replica Set

阅读更多

架构图如下:
客户请求: client
   路由:Mongs1 Mongs2 Mongs3
        40000  40100  402000
   配置:        config1     config2   config3
        config:30000 30100 30200
   副本集:
        rs1:  27017 27117 27217
        rs2:  27018 27118 27218
        rs3:  27019 27119 27219

添加windows服务形式启动:
rs1:
sc.exe create MongoDB0 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb0.cfg\"" DisplayName= "MongoDB0" start= "auto"
sc.exe create MongoDB1 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb1.cfg\"" DisplayName= "MongoDB1" start= "auto"
sc.exe create MongoDB2 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb2.cfg\"" DisplayName= "MongoDB2" start= "auto"
sc.exe create config1 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\config1.cfg\"" DisplayName= "config1" start= "auto"


rs2:
sc.exe create MongoDB3 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb3.cfg\"" DisplayName= "MongoDB3" start= "auto"
sc.exe create MongoDB4 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb4.cfg\"" DisplayName= "MongoDB4" start= "auto"
sc.exe create MongoDB5 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb5.cfg\"" DisplayName= "MongoDB5" start= "auto"
sc.exe create config2 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\config2.cfg\"" DisplayName= "config2" start= "auto"


rs3:
sc.exe create MongoDB6 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb6.cfg\"" DisplayName= "MongoDB6" start= "auto"
sc.exe create MongoDB7 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb7.cfg\"" DisplayName= "MongoDB7" start= "auto"
sc.exe create MongoDB8 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\mongodb8.cfg\"" DisplayName= "MongoDB8" start= "auto"
sc.exe create config3 binPath= "\"D:\mongodb\bin\mongod.exe\" --service --config=\"D:\mongodb\db\config3.cfg\"" DisplayName= "config3" start= "auto"


net start MongoDB0
net start MongoDB1
net start MongoDB2
net start MongoDB3
net start MongoDB4
net start MongoDB5
net start MongoDB6
net start MongoDB7
net start MongoDB8
net start config1
net start config2
net start config3


分享到:
评论
2 楼 sblig 2014-05-26  
配置分片:
 
mongo -port 27017
config = {_id:'rs1',members:[
{_id:0,host:'10.16.122.15:27017'},
{_id:1,host:'10.16.122.15:27117'},
{_id:2,host:'10.16.122.15:27217',arbiterOnly:true}
]};

rs.initiate(config)
rs.status()

mongo -port 27018
config = {_id:'rs2',members:[
{_id:0,host:'10.16.122.15:27018'},
{_id:1,host:'10.16.122.15:27118'},
{_id:2,host:'10.16.122.15:27218',arbiterOnly:true}
]};

rs.initiate(config)
rs.status()
   
mongo -port 27019
config = {_id:'rs3',members:[
{_id:0,host:'10.16.122.15:27019'},
{_id:1,host:'10.16.122.15:27119'},
{_id:2,host:'10.16.122.15:27219',arbiterOnly:true}
]};

rs.initiate(config)
rs.status()
1 楼 sblig 2014-05-26  
配置路由:

mongs: 40000 40100 40200

sc.exe create mongs1 binPath= "\"D:\mongodb\bin\mongos.exe\" --service --config=\"D:\mongodb\db\mongs1.cfg\"" DisplayName= "mongs1" start= "auto"
sc.exe create mongs2 binPath= "\"D:\mongodb\bin\mongos.exe\" --service --config=\"D:\mongodb\db\mongs2.cfg\"" DisplayName= "mongs2" start= "auto"
sc.exe create mongs3 binPath= "\"D:\mongodb\bin\mongos.exe\" --service --config=\"D:\mongodb\db\mongs3.cfg\"" DisplayName= "mongs3" start= "auto"

net start mongs1
net start mongs2
net start mongs3

添加分片
1连接任意一台,其他无需这样操作:
/usr/local/mongodb/bin/mongo --port 40000
use admin
db.runCommand({addshard:'rs1/10.16.122.15:27017,10.16.122.15:27117,10.16.122.15:27217'})
db.runCommand({addshard:'rs2/10.16.122.15:27018,10.16.122.15:27118,10.16.122.15:27218'})
db.runCommand({addshard:'rs3/10.16.122.15:27019,10.16.122.15:27119,10.16.122.15:27219'})

db.runCommand({ listshards:1 })

通过执行以下命令,可以让数据库跨shard,如果不执行这步,数据库只会存放在一个shard,
一旦激活数据库分片,数据库中不同的collection将被存放在不同的shard上,
但一个collection仍旧存放在同一个shard上,要使单个collection也分片,
还需单独对collection作些操作
db.runCommand({enablesharding:"test"});

要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作
db.runCommand( { shardcollection : "test.c1",key : {id: 1},unique : true } )

use test

for(var i=1;i<=2000003;i++)  db.c1.save({id:i,value1:"1234567890",value2:"1234567890",value3:"1234567890",value4:"1234567890"});

相关推荐

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    本解决方案通过使用 Kubernetes 部署 MongoDB 分片(Sharding)和副本集(Replica Set),从而实现 MongoDB 集群的自动化管理和高可用性。 在本解决方案中,我们首先需要安装 Kubernetes 环境,并且需要准备好 NFS ...

    centos7+mongodb 3.4 集群搭建:分片+副本集

    在本文档中,我们将详细介绍如何在CentOS 7.0系统上搭建基于MongoDB 3.4.3版本的集群环境,包括分片(sharding)和副本集(replica sets)的配置。本文档将介绍相关概念、环境准备、机器规划及端口分配、集群搭建的...

    mongodb Replica Sets +Sharding高可用集群搭建

    在大型分布式系统中,为了实现高可用性和水平扩展,MongoDB提供了两种关键特性:副本集(Replica Sets)和分片(Sharding)。这篇博客将探讨如何搭建MongoDB的副本集和分片集群。 首先,我们来理解一下MongoDB的...

    K8s 部署 MongoDB(副本集)

    mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不同的场合,属Replica set应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂 ...

    mongodb高可用完全分布集群搭建

    为了实现高可用性,需要使用副本集(Replica Set)来确保数据的可用性。在高性能方面,需要使用分片(Sharding)来分布式存储数据。 设计框架 mongodb集群的设计框架主要包括三个部分:mongod、mongos和config ...

    MongoDB集群测试代码

    在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...

    mongoDB sharding复制模式搭建官网文档

    - **分片(Shards)**:每个分片都包含数据的一个子集,分片可以是单一的MongoDB实例也可以是一组副本集(Replica Set),后者提供了更高的可用性和数据冗余。 - **配置服务器(Config Servers)**:配置服务器用于...

    CentOS 7下MongoDB 3.4 集群搭建之分片

    本文将详细介绍如何在CentOS 7操作系统下,搭建一个MongoDB 3.4版本的集群,且包括分片(sharding)与副本集(replica set)两大特性。搭建这样的集群,旨在创建一个高性能、高可用且能够水平扩展的数据库架构。 在...

    Mongodb集群之副本集集群搭建

    MongoDB 是一种流行的开源文档型数据库,支持多种集群搭建方式,包括主从模式、副本集(Replica Set)和分片(Sharding)。在本文中,我们将深入探讨副本集集群的构建及其特点。 副本集是MongoDB高可用性和冗余策略...

    数据库-mongodb3.0.3集群分片搭建.rar

    MongoDB 集群由多个服务器组成,可以包含复制集(Replica Set)和分片(Sharding)。复制集提供数据冗余和故障恢复能力,而分片则用于在多个机器之间分配数据,提高读写性能。 二、复制集搭建 1. **配置节点**:...

    小米电商Mongodb集群文档

    该文档主要介绍了小米电商部门使用的MongoDB分片集群(Sharding Cluster)与副本集(Replica Set)的技术细节。分片集群是一种水平扩展方法,用于提高数据库系统的可伸缩性和性能;副本集则是一种高可用性的解决方案...

    mongoDB集群部署文档

    MongoDB 提供了一种名为分片集群(Sharding Cluster)的架构,它允许通过水平扩展来处理海量数据,避免单点故障,并提供数据冗余。 在分片集群中,有三个核心组件: 1. **Shard Server**:存储实际数据块的 mongod...

    centos7下mongodb4.0.6分片集群搭建-单体升级成绩群方案.pdf

    4. **配置服务器(Config Server)**:存储关于分片集群的元数据,如分片信息、副本集状态等。 从单节点升级到分片集群的步骤大致如下: 1. **安装 MongoDB**:在所有服务器上安装 MongoDB,并以服务方式启动和...

    MongoDB Sharding 机制分析

    可以从一个普通的 replica set,或者单个实例平滑升级,可以动态增加删除节点,响应数据快速增长。可以自动在节点间平衡数据量,避免负载集中在少数节点,而在这期间不影响数据库读写访问。对客户端,可以使用完全...

    2012 最新的mongodb sharding配置步骤 权威指南 分片步骤

    每个分片服务器可以独立运行多个复制集(Replica Set)来确保数据的高可用性和容错性。分片的关键组件包括分片服务器、路由服务器(Mongos)和配置服务器(Config Server)。 以下是一份详细的分片配置步骤: 1. *...

    Mongodb 集群分片部署.pdf

    - 分片(Sharding)适合大型集群,但小型集群中,副本集可能更优。 - 对风险敏感的环境,主从模式可能更保守,因为副本集是相对较新的特性。 总的来说,MongoDB的分片部署是一种高效的数据管理和扩展策略,它能够...

    mongodb3.4集群搭建

    副本集(replicaset)是一组运行MongoDB进程的服务器,它们一起提供容错和可扩展性。在一个副本集中,每个成员都有一个角色:主(primary)、从(secondary)或仲裁(arbiter)。主节点处理读写请求,而从节点则是主节点的...

    mongodb分片设计

    每个分片可以是一个单一的MongoDB服务器,也可以是一个副本集(Replica Set),从而为数据提供冗余和高可用性。配置服务器是保存整个分片集群元数据的关键组件,它记录了所有分片的信息和集群的数据分布情况。 数据...

    mongodb集群搭建

    ### MongoDB集群搭建详解 #### 一、MongoDB基础概念与术语对照 在深入了解MongoDB集群搭建之前,我们先简要回顾一下MongoDB的基本概念及其与传统关系型数据库的对应关系。 - **Database(数据库)**:MongoDB中的...

Global site tag (gtag.js) - Google Analytics