MongoDB: 一个简单的配置两个shared的例子

MongoDB学习【一】MongoDB免安装版配置启动及简单CRUD操作 今天第一次接触到MongoDB,学习了简单的安装配置及CRUD操作,做个笔记记录一波。 一、免安装版配置 1、下载安装包 >>>https://www.mongodb.com/download-center/community?jmp=docs 2、zip解压后可重命名,解压后文件目录如下 3、在bin同级目录创建一个空文件夹data,作为数据存放路径 4、在... 阅读详情

MongoDB: 一个简单的配置两个shared的例子

标签: mongodb服务器数据库扩展测试shell
  2736人阅读  评论(0)  收藏  举报
  分类:

目录(?)[+]

 

MongoDB: 一个简单的配置两个shared的例子

 

下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不同的服务器上。

 

1. 创建Shards

在本机上启动一对shared服务

 

[c-sharp]  view plain  copy
  1. $ mkdir /data/db/a /data/db/b  
  2. $ ./mongod --shardsvr --dbpath /data/db/a --port 10000 > /tmp/sharda.log &  
  3. $ cat /tmp/sharda.log  
  4. $ ./mongod --shardsvr --dbpath /data/db/b --port 10001 > /tmp/shardb.log &  
  5. $ cat /tmp/shardb.log  
 

 

2. 启动配置与mongos服务

 

下面要启动配置服务与mongos服务,

 

[c-sharp]  view plain  copy
  1. $ mkdir /data/db/config  
  2. $ ./mongod --configsvr --dbpath /data/db/config --port 20000 > /tmp/configdb.log &  
  3. $ cat /tmp/configdb.log  
  4. $ ./mongos --configdb localhost:20000 > /tmp/mongos.log &  
  5. $ cat /tmp/mongos.log  
 

 

这里mongos不需要指定数据目录,它所需要的数据都是从配置服务器上得到的。当然这里的配置服务器也可以集群,这样可以提高可用性。

 

当然这里的两个shard和配置服务可以分布在不同的机器上,只要在这里指定相应的ip地址就行。这里为了测试,把所有服务都开在同一台服务器上。

 

NOTE: 要注意的是,mongos默认的chunk的大小为200M,你可以在启动mongos服务的时候设置chunk的大小,它以MB为单位,当两个shard进行数据平衡的时候,就会以chunk为单位进行数据迁移。

 

[c-sharp]  view plain  copy
  1. $ ./mongos --configdb localhost:20000 --chunkSize 1 > /tmp/mongos.log &    
 

 

这里设置chunkSize为1MB

 

3. 连接mongos服务

如果在本机连接服务的话只要./mongo命令就可以,它默认的连接端口号为27017,当然你也可以连接远程的服务器, 这里要指定机器ip地址。

 

下面我们连接mongos后进行shard的配置。

 

[c-sharp]  view plain  copy
  1. $ ./mongo  
  2. MongoDB shell version: 1.6.0  
  3. connecting to: test  
  4. > use admin      // 这里一定要使用管理员才能进行配置  
  5. switched to db admin  
  6. > db.runCommand( { addshard : "localhost:10000" } )   // 加入shard节点  
  7. { "shardadded" : "shard0000", "ok" : 1 }  
  8. > db.runCommand( { addshard : "localhost:10001" } )  
  9. { "shardadded" : "shard0001", "ok" : 1 }  
 

 

下面你要说明要对哪个数据库进行分块,而且数据库中的表要指定相应的一个key或多个keys,这里为用来对数据进行切分用的。

 

[c-sharp]  view plain  copy
  1. > db.runCommand( { enablesharding : "test" } )  
  2. {"ok" : 1}  
  3. > db.runCommand( { shardcollection : "test.people", key : {name : 1} } )  
  4. {"ok" : 1}  
 

 

 

4. 看一下数据库的状态

 

[c-sharp]  view plain  copy
  1. > use config  
  2. switched to db config  
  3. > show collections  
  4. chunks  
  5. databases  
  6. lockpings  
  7. locks  
  8. mongos  
  9. settings  
  10. shards  
  11. system.indexes  
  12. version  
 

 

这些表包括了分块配置的所有的信息。

 

5. 分块与复制的关系。

数据的分块就相当于对数据库进行scale out,所集中管理的数据分到不同的单点上去管理,以提高数据库的可扩展性。前面所讲的复制是提高数据的可用性而准备的,它不会因为一个节点的故障而影响数据的可用性。

 

看一下面的图就知道明白了,一个是横向扩展(shared),另一个是纵向扩展(replication),从而形成了一个数据阵列。

 

mongodb

 

6. 参考

http://www.mongodb.org/display/DOCS/A+Sample+Configuration+Session

http://www.mongodb.org/display/DOCS/Sharding+Introduction

配置mongodb分片群集(sharding cluster) NULL 博文链接:https://ainn2006.iteye.com/blog/1567229 立即下载

相关推荐

RK3588部署rtmpose模型

摘要: 本文详细介绍了在RK3588开发板上部署RTMPose模型的全流程。首先在Ubuntu环境中搭建MMCV框架,通过MMPose工具将PTH模型转换为ONNX格式。随后使用RKNN-Toolkit2将ONNX模型转换为RKNN格式,并完成开发板部署。关键步骤包括模型转换(PTH→ONNX→RKNN)、环境配置和推理验证,最终实现人体姿态估计功能。整个过程涉及MMPose、RKNN-Toolkit等工具链的使用,为边缘计算场景下的实时姿态分析提供了可行方案。

qq_44224801的博客 1219

SqlSessionFactory多数据源配置案例(springBoot)

SqlSessionFactory多数据源配置案例(springBoot),注解方式在文章下面附带链接

continuce的博客 5930

语音识别(ASR)-- Kaldi 学习笔记

语音识别(ASR)-- Kaldi学习笔记语音识别简介GMM-HMM基本原理DNN-HMM(基于神经网络)KaldiKaldi架构简介Kaldi在Windows下的安装工具准备编译OpenFST配置PortAudio配置KaldiKaldi目录说明 语音识别简介 语音识别(Speech Recognition)技术,也被称为自动语音识别(Automatic Speech Recognition, ASR)、计算机语音识别(Computer Speech Recognition)或是语音转文本识别(Spee

qq_43318971的博客 4847

mongodb shared简介

参考文档: https://docs.mongodb.com/ mongodb的分片是一种将数据打算分配到不同机器上的方法。通过分片,mongodb能够做到大数据量的批量操作。 一般来讲,应对业务快速发展,有两种方式:水平扩展、垂直扩展。 垂直扩展,就是提升单台服务器的性能,如更多核的处理器、更大的内存、更大的存储空间。硬件工艺的不足会限制一台服务器的性能到一个极限后,无法在扩大。 水平扩展:...

gaojiebao的博客 1012

UE4 GamePlay框架深度解析:从蓝图到C++构建多人游戏核心

在游戏开发与实时交互应用领域,一套清晰、可扩展的底层框架是项目成功的关键。GamePlay框架作为虚幻引擎(UE4/UE5)的核心架构,定义了游戏世界中对象交互、状态管理与网络同步的基本原理。它通过职责分离的设计模式,将游戏规则(GameMode)、全局状态(GameState)、玩家状态(PlayerState)、可操控实体(Pawn/Character)及其控制器(Controller)等核心类有机组织起来,确保了逻辑的清晰性与多人游戏数据的一致性。其技术价值在于为开发者提供了一套经过验证的最佳实践,大

weixin_33924770的博客 619

【Unity】Unity 跨平台及编译过程

早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。 CLS(Common Language System)通用语言规范:CLS是一种规范,类似于schema,当文件被指定遵守CLS规范后,在某语言中写出不符合通用规范的代码后将被警告或报错。 MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MO

一个普普通通的游戏开发者 7237

mongodb shared cluster搭建

背景 最早使用mongodb的时候贪省事,就起一个单节点的就好了。后来,公司要用,为了可用性就搭了一个replica set集群,似乎也挺好的。后来出了点问题,发现mongo集群并发上不去。后来查了下,replica set只能做到主备,每个进程的数据是一样的,同时为了保证一致性,事务是多进程间同步等待的。这样无论是对写性能,还是大数据量都是很大的瓶颈。而网上盛传的高并发高性能,似乎都是share...

征途无悔 1340

CAN总线开发必看:报文发送类型全解析(含Cycle/Event/CE/IfActive对比)

本文深入解析CAN总线开发中的四种报文发送类型(Cycle/Event/CE/IfActive),对比其核心特征与工程应用场景。通过典型ECU交互案例和决策矩阵,帮助开发者根据实时性、总线效率等需求选择最优方案,并详解信号发送模式与恢复机制,提升车载网络通信可靠性。

weixin_30632089的博客 313

mongodb分片集群机制和原理

mongodb分片集群机制的原理分析和讲解

橙子的随笔集 1316

unity shader 后处理实现水墨风格渲染「Low Poly 」变「水墨画 」

水墨风格渲染 这次学校的比赛打算做一个中国古代背景的游戏,所以尝试做了水墨风格的渲染。 主要按以下四步来实现的效果: 根据色调和饱和度调整饱和度。 对图像进行模糊 水墨风格的物体边缘 物体内画笔笔触的模拟 接下来我分别就这四步依次展开说明: 调整饱和度 这里我使用Post-Processing Stack 的Color Grading 来调节饱和度,通过使用Grading Curv...

九级铁甲蛹的博客 1万+

23、变压器与电抗器知识详解

本文详细介绍了电力变压器的基本原理、等效电路、测试方法及多种运行方式,涵盖双绕组与自耦变压器的建模与应用。深入探讨了变压器极性判断、并联运行条件、电压调节技术,并扩展至非线性、磁滞、EMTP和高频模型,用于瞬态分析。同时阐述了地磁感应电流(GIC)的影响及对偶建模方法。最后系统介绍了各类电抗器的应用场景与特性,包括限流、无功补偿、滤波及特殊用途电抗器,全面覆盖电力系统中变压器与电抗器的核心知识。

eee77的博客 150

Springboot集成MongoDB(简单例子)

Springboot集成MongoDB1、MongoDB简介2、springboot集成MongoDB1.引入依赖2.添加MongoDB配置3.在medel实体文件夹下新建类AyUserAttachmentRel,代码如下:4.用jpa实现MongoDB和java的连接5.创建业务层接口6.创建接口的实现类7.测试 1、MongoDB简介 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库

码出精彩 5674

从零开始学习AI人工智能本体论:概念与实战

本文旨在为初学者提供一个全面而易于理解的人工智能本体论入门指南。我们将覆盖从基本概念到实际应用的全过程,帮助读者理解本体论在AI系统中的核心作用。核心概念与联系:介绍本体论的基本概念和原理核心算法与操作步骤:详细讲解本体构建和推理方法项目实战:通过实际案例展示本体论的应用实际应用场景:探讨本体论在不同领域的应用未来发展趋势:展望本体论在AI领域的前景本体论(Ontology): 在AI中,指对特定领域概念及其关系的明确形式化描述。

AI智能探索者的博客 868

一个简单的mongodb例子

利用mongodb文档数据库的特点,可以方便地快速地查询表的大量数据,将mysql表,迁移到mongodb表。

weixin_41782780的博客 603

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Mongodb简单例子

1、实体类 @Document(collection = "t_user") public class MongoUser implements Serializable{ private static final long serialVersionUID = -1409493968092980571L; @Id private Integer id; priv...

看图说话 3009

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

springboot配置两个MongoDB

本来是按basePackageClasses的方式实现的,结果两个MongoDB只有一个生效,怀疑是dao在一个包里面的原因,改成放在不同的包里面就正常了。错误代码:@EnableMongoRepositories(basePackageClasses = orderInfoPrimaryDao.class, mongoTemplateRef = "primaryMongoTemplate")

1098

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Linux安装MongoDB(简单详细)

将解压后的 mongodb-linux-x86_64-rhel70-4.2.23 中的所有文件全部移动到 /usr/local/mongodb 中 :注意/*是所有子文件。将从官网下载好的 mongodb-linux-x86_64-rhel70-4.2.23.tgz 上传到要安装的服务器的目录中。报错二:-bash: /usr/local/mongodb6/bin/mongod: Permission denied。如果启动后没有关闭,再起启动也会报错48.则可以先使用关闭命令关闭,然后再次启动。

weixin_38568503的博客 2万+

MongoDB C++应用 简单例子

假定你已经有了MongoDB server,并且工作在Ubuntu上,安装了GCC,下面的C++程序可以帮助你快速进入能够使用MongoDB的状态。#include #include using namespace std; using namespace mongo; void SaveStatus(mongo::DBClientBase& session, string const& d

Dean Chen的专栏 1万+

Spring整合mongodb,并且配置两个数据源

首先引入pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 在application.prope...

you_ran_jian的博客 1013

MongoDB分组统计的一个例子

一个是关于MongoDB中Int64 Int32 Double三个数据类型,PHP中只有int型,那么32位系统中怎么处理的呢。 被坑之后发现:使用MongoDB PHP Driver时,如果向mongodb中insert一个数值,默认是如果这个数值一个小于等于(2^31 - 1) 那么在mongodb中存储的时候是int32存储 。但是如果这个数值大于了(2^31 -1)但是没有进行任何处理,直接使用了insert,那么在mongodb中是存储成了Double,如果想要让存储称int64 ,那么php中需

会呼吸的鱼 6329

MongoDB 的简单查询操作

简单的查询相关语句

DXZFLY的博客 3758

MONGODB, NODEJS聚合简单例子

MONGODB, NODEJS聚合简单例子 Mongodb 聚合 所需mongodb 本地 安装 node js 本地安装 程序分析 其实也没什么分析。代码说明了一切 var mongoose = require('mongoose'); //mongoo中间件 var Schema = mongoose.Schema; //数据模型 //Database connection 数据库连接 va...

qq_41291619的博客 962

mongodb同一个document中两个字段比较查询

db.ct_work.aggregate([ {$project:{crtTm:1,stuNum: 1,subNum: 1,cmpTo: { $cmp: [ "$subNum", {$multiply:["$stuNum",0.5]} ] },_id: 1}} , { $match : {crtTm:{$gt:ISODate("2018-03-12T13:30:00.000Z")...

高飞@_@ 8113

【MongoDB 配置篇】MongoDB 配置文件详解

目录 1 数据库环境 2 配置文件 2.1 配置文件格式 2.2 配置文件的使用 3 配置文件核心选项 3.1 systemLog选项 3.2 processManagement选项 3.3 cloud选项 3.4 net选项 3.5 security选项 3.6 setParameter选项 3.7 storage选项 3.8 operationProfiling选项 ...

个人公众号:Alen的数据库学习笔记 2473

MongoDB配置

关于MongoDB 环境 安装过程 解压安装包添加到Path 配置config server 配置shard 启用分片 测试 启动关闭 问题 关于MongoDBMongoDB主要是有四个组件:mongos、config server、shard、replica set。 - mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自

Volcano 4739
上一篇: mongodb的sharding(分片)横向扩容的方法
下一篇: 一种可以避免数据迁移的分库分表scale-out扩容方式
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值