MongoDB分片部署(windows)

news2024/11/28 16:41:17

OS:win10

MongoDB:4.4.24

分片架构

从图中可以看出,分片集群中主要由三个部分组成,即分片服务器( Shard )、路由服务器
Mongos )以及配置服务器( Config Server )组成。其中,分片服务器有三个,即 Shard1
Shard2 Shard3 ;路由服务器有两个,即 Mongos1 Mongos2 ;配置服务器有三个,即主、副、副。
主要有如下所述三个主要组件:
Shard: 用于存储实际的数据块,实际生产环境中一个shard server 角色可由几台机器组个一个 replica set 承担,防止主机单点故障
Config Server: mongod实例,存储了整个 ClusterMetadata ,其中包括 chunk 信息。
Query Routers: 前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

部署分片集群

部署shard

步骤一:环境准备

分片节点(实例)端口路径
1shard11(主)4006

dbpath:D:\shard1\shard11\data

logpath:D:\shard1\shard11\log

shard12(从)4007

dbpath:D:\shard1\shard12\data

logpath:D:\shard1\shard12\log

2shard21(主)4008

dbpath:D:\shard2\shard21\data

logpath:D:\shard2\shard21\log

shard22(从)4009

dbpath:D:\shard2\shard22\data

logpath:D:\shard2\shard22\log

每一个分片都应该安装 MongoDB 实例,需要将 bin 文件复制到每个分片中, 并且创建data 文件以及 log 文件存放数据库数据和日志数据

步骤二 启动分片服务(实例)

启动分片集群1(shard11和shard12)

shard11

然后进入数据库bin目录中,启动cmd

\bin>mongod --shardsvr --replSet shard1 -port 4006 -dbpath D:\shard1\shard11\data -logpath D:\shard1\shard11\log\shard11.log
--shardsvr 为分片声明
当命令一直保持运行状态则说明服务运行成功,此服务为一次性服务,不要关闭此窗口,最小化即可。
shard12:

再次进入数据库bin目录中,启动cmd

bin>mongod --shardsvr --replSet shard1 -port 4007 -dbpath D:\shard1\shard12\data -logpath D:\shard1\shard12\log\shard12.log

启动分片集群2(shard21和shard22)

shard21

\bin>mongod --shardsvr --replSet shard2 -port 4008 -dbpath D:\shard2\shard21\data -logpath D:\shard2\shard21\log\shard21.log

shard22

\bin>mongod --shardsvr --replSet shard2 -port 4009 -dbpath D:\shard2\shard22\data -logpath D:\shard2\shard22\log\shard22.log

tips:

电脑版本比较高,所以的 cmd 需要使用管理员身份运行
启动服务均为一次性服务,关闭 cmd 即为关闭服务,所以在未完成前,请勿关闭
实例均未添加至系统环境变量,请在 bin 目录下启动
虽然窗口很多,操作不太友好,但是在 win 系统下,还是多有耐心一点, linux会简单一些

步骤三:配置分片(shard)集群

进入到shard1集群任何一个节点中

use admin

config={_id:"shard1",members:[
... {_id:0,host:"localhost:4006",priority:2},
... {_id:1,host:"localhost:4007",priority:1}
... ]}


 rs.initate(config)

进入到shard2集群任何一个节点中

use admin

config={_id:"shard2",members:[
... {_id:0,host:"localhost:4008",priority:2},
... {_id:1,host:"localhost:4009",priority:1}
... ]}


 rs.initate(config)

至此,shard集群配置好了。

部署config server

步骤一:环境准备

值得注意的是:在 MongoDB 3 版本后 config 服务必须配置为从 副本集 ,所以直接用前面设置好了的副 本启动即可
config实例端口数据路径日志路径
config1(主)4002D:\config\config1\dataD:\config\config1\log
config2(从)4003D:\config\config2\dataD:\config\config2\log

老样子,每个文件夹添加datalog

步骤二:启动config server

启动config1

进入到bin目录中,启动cmd

\bin>mongod --configsvr --replSet confset -port 4002 -dbpath D:\config\config1\data -logpath D:\config\config1\log\conf1.log
--configsvr 这里我们完全可以像启动普通 mongodb 服务一样启动,不需要添加 —shardsvr configsvr 参数。因为这两个参数的作用就是改变启动端口的,所以我们自行指定了端口就可以。

启动config2

\bin>mongod --configsvr --replSet confset -port 4003 -dbpath D:\config\config2\data -logpath D:\config\config2\log\conf2.log

不要关闭 cmd 窗口,最小化即可 ]

步骤三:配置config server集群

进入任何一个配置服务器的节点初始化配置服务器的群集

 use admin


 config={_id:"confset",configsvr:true,members:[
... {_id:0,host:"localhost:4002"},
... {_id:1,host:"localhost:4003"}
... ]}


 rs.initiate(config)

部署路由服务器 Route Process

可以创建专门的文件夹存放日志

在进入 数据库 bin 目录中 启动 cmd


D:\MongoDB\bin>mongos --configdb confset/localhost:4002,localhost:4003 -logpath D:\mongos\log\mongos.log -port 4000
mongos mongos 就是一个路由服务器,它会根据管理员设置的 片键 将数据分摊到自己管理的
mongod 集群,数据和片的对应关系以及相应的配置信息保存在 "config 服务器 " 上。

配置分片信息

bin 目录下使用 MongoDB Shell 登录到 mongos ,添加 Shard 节点

mongos> sh.addShard("shard1/localhost:4006,localhost:4007")

mongos> sh.addShard("shard2/localhost:4008,localhost:4009")

测试分片

登入路由(4000) 端口
指定要分片的数据库
mongos> sh.enableSharding("test")
指定数据库里需要分片的集合和片键,片键根据实际情况选择
mongos> sh.shardCollection("test.c2",{"id":"hashed"})

上述指令指定分片集合为c2,分片字段为“id”,分片形式是哈希分片,若改成“1”则为范围分片

如果集合已经包含数据,则必须在分片集合之前创建一个支持分片键的索引,如果集合为空,则
mongodb 将创建索引。

插入数据验证

mongos> for(var i=1;i<=10000;i++){
... db.c2.save({id:i,name:"a"+i});}

robo 3T查看分片集

连接两个 shard 端口查看分片情况,若两个片段不同,则说明分片成功!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1599254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 物联网入门指南(四)

原文&#xff1a;zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第九章&#xff1a;构建光学字符识别的神经网络模块 本章介绍以下主题&#xff1a; 使用光学字符识别&#xff08;OCR&#xff09;系统 使…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.26.15集群(一主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大概时间有10s多,这个时间太长了,尝试了各种办法,都解决不了,后面尝试安装了了1.26.…

中国DIVI版,wordpress DIVI网站主题在国内的替代方案。

最受欢迎的WordPress主题之一是Divi。我们创建了这个全面的Divi主题评论&#xff0c;以帮助您更好地了解其优点和潜在缺点。 Divi主题是什么&#xff1f; Divi是一个流行的WordPress主题&#xff0c;提供了一个网站建设平台。它有一个可视化编辑器选项&#xff0c;为新手和专业…

市面上加密混淆软件的比较和推荐

引言 市面上有许多加密混淆软件可供开发者使用&#xff0c;但哪些软件是最好用的&#xff1f;哪些软件受到开发者的喜爱&#xff1f;本文将根据一次在CSDN上的投票结果&#xff0c;为大家介绍几款在程序员中普及度较高的加密软件。以下是投票结果&#xff0c;希望能对大家的选择…

如何在CentOS安装Firefox并结合内网穿透工具实现公网访问本地火狐浏览器

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器&#xff0c;由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

软件测试的4个职业阶段,你在哪个阶段?

最近一直在忙的项目刚刚上线交付完成&#xff0c;让自己有了些许喘息的时间。人总是这样&#xff0c;在忙碌的时候&#xff0c;能心无旁骛关注并做好一件事&#xff0c;已是万幸。而全力而为之后的闲暇总是如此的珍贵&#xff0c;在这难得的空隙中&#xff0c;不自觉的开始对自…

10、【代理模式】通过引入一个代理对象来控制对原始对象的访问的方式。

你好&#xff0c;我是程序员雪球。 今天我们了解代理模式的原理、静态代理和动态代理的区别、Spring AOP 和动态代理的关系、代理模式的使用场景&#xff0c;以及用 Java 实现一个动态代理示例 一、代理模式的原理 代理模式是一种设计模式&#xff0c;它提供了一种通过引入一个…

最新AI一键生成漫画推文爆款视频,10分钟1条原创视频,1条视频最高2000+?

最近&#xff0c;有些朋友一直在询问关于AI漫画推文的方法&#xff0c;虽然我原本对此并不特别感兴趣&#xff0c;但在他们的多次催促下… 今天&#xff0c;我将详细解析这个玩法&#xff01;、 项目 地 址 &#xff1a; laoa1.cn/1671.html 关于项目的收益&#xff0c;我…

麒麟信安LTF框架上线openEuler社区

麒麟信安LTF框架介绍 LTF&#xff08;Linux Test Framework&#xff09;是麒麟信安自动化组开发的一款面向Linux操作系统测试的自动化测试框架&#xff0c;目前已在openEuler社区开源。LTF工具积极投入国内各评测项目和日常版本测试任务中&#xff0c;汲取了在Linux自动化测试…

一篇文章带你了解Python常用自动化测试框架——Pytest!

在之前的文章里我们已经学习了Python自带测试框架UnitTest&#xff0c;但是UnitTest具有一定的局限性 这篇文章里我们来学习第三方框架Pytest&#xff0c;它在保留了UnitTest框架语法的基础上有着更多的优化处理 下面我们将从以下角度来介绍Pytest&#xff1a; Pytest基本介…

Unity之Unity面试题(四)

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity之Unity面试题&#xff08;四&#xff09; TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取…

多轴机械臂/正逆解/轨迹规划/机器人运动学/Matlab/DH法 学习记录02——机械臂几何法与DH表示法

系列文章目录 本科毕设正在做多轴机械臂相关的内容&#xff0c;这里是一个学习机械臂运动学课程的相关记录。 如有任何问题&#xff0c;可发邮件至layraliufoxmail.com问询。 1. 数学基础 2. 机械臂几何法与DH表示法 文章目录 系列文章目录一、手臂几何法1.机械手臂2.机械手臂…

盘点数据领域1亿美金以上的收购记录

最近&#xff0c;Salesforce对数据复制巨头Informatica发出了收购邀约&#xff0c;金额预计110亿美金。 Salesforce前脚刚157亿美金买入Tableau&#xff0c;这下又想把Informatic买下&#xff0c;太豪横了。我们一起盘点数据领域还有哪些土豪收购记录&#xff1a; 数据领域&…

Qt中连接mysql

1、安装mysql&#xff0c;workbench&#xff0c;为mysql添加环境变量 2、安装Qt带src&#xff0c;然后到如下目录&#xff0c;找到mysql.pro(建议做个副本先) http://D:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql mysql.pro 注意路径的 \ / 和双引号的使…

【javaWeb 第七篇】后端-Spring

Spring SpringspringBoot请求简单参数实体参数数组集合参数日期参数JSON参数路径参数 响应数据分层解耦三层架构解耦操作Bean的声明Bean组件扫描问题DI详解 Spring 详细介绍结合官网查看&#xff1a;https://spring.io/why-spring Spring发展到今天已经形成一种开发生态圈&…

KNIME 国际化支持投票

你的投票也许能让 KNIME 中文化快一点点。 i18n 是个很搞笑的单词&#xff0c;它是英文 internationalization 国际化的缩写。18 指的是首字母i和末字母n中间有18个字母。另外还有什么 K8s 也是一样&#xff0c;中间省去了8个字母 ... 真是懒的可以。指北君还想起一个类似的笑话…

微信小程序全局配置

全局配置文件及常用的配置项 小程序根目录下的 app.json 文件是小程序的全局配置文件。常用的配置项如下&#xff1a; ① pages 记录当前小程序所有页面的存放路径 ② window 全局设置小程序窗口的外观 ③ tabBar 设置小程序底部的 tabBar 效果 ④ style 是否启用新版的组件样…

vue3+ts中判断输入的值是不是经纬度格式

vue3ts中判断输入的值是不是经纬度格式 vue代码&#xff1a; <template #bdjhwz"{ record }"><a-row :gutter"8" v-show"!record.editable"><a-col :span"12"><a-input placeholder"经度" v-model:v…

CookieSession

目录 什么是会话 一.Cookie 1.Cookie介绍 2.Cookie的作用 3.Cookie的基本使用 4.Cookie生命周期 5.Cookie有效路径 6.注意事项 二.Session 1.Session基本原理 2 Session的作用 3.Session的基本使用 4.Session底层实现机制 5.Session生命周期 什么是会话 Cookie和S…

C++从入门到精通——类的6个默认成员函数之赋值运算符重载

赋值运算符重载 前言一、运算符重载定义实例注意要点 二、赋值运算符重载赋值运算符重载格式赋值运算符重载要点重载要点传值返回和传址返回要点 三、前置和后置重载 前言 类的6个默认成员函数&#xff1a;如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么…