前言-为什么我要使用mongodb

最近我公司要开发一个日志系统,这个日志系统包括很多类型,错误的,操作的,...用MongoDB存储日志,大量的日志产生,大量读写吞吐量很大的时候,单个Server很难满足需求,这里就要用到mongodb分片集群

一、MongoDB的分片简介

分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。

请先安装MongoDB成功后继续本操作

二、先来了解一下分片的组成

--片

片是保存子集数据的容器,片可是单个Mongod服务器,也可以是副本集。

--mongos

mongos就是MongoDB各版本中都配的路由器进程。它路由所有请求,然后将结果聚合。它本身并不存储数据或者配置信息。

--配置服务器

配置服务器存储了集群的配置信息:数据和片的对应关系。Mongos不永久存放数据,所有需要个地方存放分片配置。它会从配置服务器获取同步数据。

三、动手操作

1.首先建立测试程序需要的文件夹(MongoDB/data/)

这里我的文件夹配置

D:/MongoDB/data/config  配置服务器

D:/MongoDB/data/shard1 分片1

D:/MongoDB/data/shard2 分片2

2.启动和配置服务器

1
Mongod --dbpath d:/mongodb/data/config --port 20000

3.建立mongos进程,以供应用程序连接

1
Mongos --port 30000 --configdb localhost:20000

分片管理都是由mongos完成的

4.添加片

启动分片一

1
Mongod --dbpath d:mongodb/data/shard1 --port 10000

启动分片二

1
Mongod --dbpath d:mongodb/data/shard2 --port 10001

这里你可以添加多个片,这里我就只添加两个片

连接刚才启动的mongos,为集群添加片,启动shell输入一下命令

1
Mongo localhost:30000/admin

添加刚才配置的片

1
2
db.runCommand({addshard:”localhost:10000”,allowLocal:true})
db.runCommand({addshard:”localhost:10001”,allowLocal:true})

上图错误是博主写文章的时候分片已经条件过了导致的

分片已经添加完成后,我们现在要让mongodb切分一下数据,首先先要添加需要切分的数据库

1
db.runCommand({“enablesharding”:”foo”})

对数据库切分后,内部的集合就会存储到不同的片

对库添加了切分条件,我们还需要对集合切分,下面的列子是按照“_id”为基准对foo下面的test集合切分数据

1
db.runCommand({“shardcollection”:”foo.test”,”key”:{“_id”:1}})

这样在test中添加数据,集合就会按照“_id”分散到各个分片上了

现在我们来测试一下刚才分片的数据

使用use命令切换到分片的库上。

1
use foo

循环插入10W条数据查看一下分片的结果

1
for(i=0;i<100000;i++){ db.test.insert({"Uid":i,"Date":new Date()}); }

同时查看分片1和分片2看看数据是不是平均分布了

四、可能导致的错误列表

  1. 连接某个分片或者服务器连接不上错误:10061

开启了服务器请勿关闭窗口,按照上面的操作应该存在5个窗口

以上文章理论资料参考《Mongodb权威指南》

MongoDB部署实战(一)MongoDB在windows平台分片集群部署的更多相关文章

  1. MongoDB在windows平台分片集群部署

    本文转载自:https://www.cnblogs.com/hx764208769/p/4260177.html 前言-为什么我要使用mongodb 最近我公司要开发一个日志系统,这个日志系统包括很多 ...

  2. MongoDB DBA 实践8-----Linux系统Mongodb分片集群部署

    在Linux系统中,主要是使用命令行进行mongodb的分片集群部署 一.先决条件 mongodb安装成功,明确路径, MongoDB的几个路径: /var/lib/mongodb /var/log/ ...

  3. mongoDB研究笔记:分片集群部署

    前面几篇文章的分析复制集解决了数据库的备份与自动故障转移,但是围绕数据库的业务中当前还有两个方面的问题变得越来越重要.一是海量数据如何存储?二是如何高效的读写海量数据?尽管复制集也可以实现读写分析,如 ...

  4. MongoDB DBA 实践6-----MongoDB的分片集群部署

    一.分片 MongoDB使用分片技术来支持大数据集和高吞吐量操作. 1.分片目的 对于单台数据库服务器,庞大的数据量及高吞吐量的应用程序对它而言无疑是个巨大的挑战.频繁的CRUD操作能够耗尽服务器的C ...

  5. MongoDB分片集群部署方案

    前言 副本集部署是对数据的冗余和增加读请求的处理能力,却不能提高写请求的处理能力:关键问题是随着数据增加,单机硬件配置会成为性能的瓶颈.而分片集群可以很好的解决这一问题,通过水平扩展来提升性能.分片部 ...

  6. 【深入 MongoDB 开发】使用正确的姿势连接分片集群

    MongoDB分片集群(Sharded Cluster)通过将数据分散存储到多个分片(Shard)上,来实现高可扩展性.实现分片集群时,MongoDB 引入 Config Server 来存储集群的元 ...

  7. monodb分片集群部署

    本文档基于MongoDB版本3.6.2 下载地址: 建议使用最新版本 https://www.mongodb.com/download-center#community 安装文件 集群ip及端口设计方 ...

  8. mongo分片集群部署

    测试环境192.168.56.101-213 前期准备: openssl rand -base64 756 > /home/software/mongodb/mongodbkey chmod   ...

  9. Mongodb分片集群技术+用户验证

    随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,“分片”就用这个来解决这个问题. 从图中可以看到有四个组件:mongos.config server. ...

随机推荐

  1. DPDK编程指南 2.概述

    本章节给出了DPDK架构的一个全局概述. DPDK的主要目的就是为数据面快速报文处理应用程序提供一个简洁完整的框架.用户可以通过代码来理解其中使用的一些技术,构建自己的应用程序或添加自己的协议栈.Al ...

  2. spring3: 基于Schema的AOP

    6.3  基于Schema的AOP 基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面.切入点及声明通知. 在Spring配置文件中,所以AOP相关定义必须放在<a ...

  3. NLP(二)_汉语言分词技术-最大匹配法

    前述 词是自然语言中最小的有意义的构成单位.汉语文本是基于单字的文本,汉语的书面表达方式以汉字作为最小单元,词与词之间没有明显的界限标志,因此,分词是汉语文本分析处理中首先要解决的问题之一. 分词可能 ...

  4. sql server数据库课程设计分析

    课题:能源管理收费系统 系统功能的基本要求: (1)用户基本信息的录入:包括用户的单位.部门.姓名.联系电话.住址 : (2)用户水.电.气数据的录入(每个月的数据的录入): (3)水.电.气价格的管 ...

  5. 最新Mysql5.7安装教程

    可以从MSQL官网下载MySQL服务器安装软件包,我下载为版本“mysql-installer-community-5.7.3.0-m13.msi”不多说 方法/步骤   1 双击进入安装,如下图: ...

  6. String、StringBuffer、StringBuilder分析(jdk8)

    以下代码只挑选了关键方法进行分析 public final class String //String类不可继承,实现了序列化 implements java.io.Serializable, Com ...

  7. New Concept English three (30)

    27W/m 32 words the death of ghost For years, villagers believed that Endley Farm was hunted. The far ...

  8. 从输入url到页面加载的过程

    用户端请求步骤:DNS解析URL地址.生成HTTP请求报文.构建TCP连接.使用IP协议选择传输路线.数据链路层保证数据的可靠传输.物理层将数据转换成电子.光学或微波信号进行传输 网络传输: 从客户机 ...

  9. cursor光标类型

    今天早上在网上看到一篇关于光标类型的总结代码,很好,特定拿来: 最终结果: 代码: <!DOCTYPE html> <html lang="zh-cn"> ...

  10. Python 把二进制mnist数据库转换为图片

    mnist数据库可以通过caffe里的get_mnist.sh文件下载,路径是: caffe-master/data/mnist/get_mnist.sh,get_mnist.sh内容如下: #!/u ...