MongoDB分片集群搭建及扩容
分片集群搭建及扩容
整体架构

环境准备
- 3台Linux虚拟机,准备MongoDB环境,配置环境变量。
- 一定要版本一致(重点),当前使用 version4.4.9

配置域名解析
在3台虚拟机上执行以下命令,注意替换实际 IP 地址
echo "192.168.65.97 mongo1 mongo01.com mongo02.com" >> /etc/hostsecho "192.168.65.190 mongo2 mongo03.com mongo04.com" >> /etc/hostsecho "192.168.65.200 mongo3 mongo05.com mongo06.com" >> /etc/hosts
准备分片目录
在各服务器上创建数据目录,我们使用 `/data`,请按自己需要修改为其他目录:
在mongo01.com / mongo03.com / mongo05.com 上执行以下命令:
mkdir -p /data/shard1/db /data/shard1/log /data/config/db /data/config/log
在mongo02.com / mongo04.com / mongo06.com 上执行以下命令:
mkdir -p /data/shard2/db /data/shard2/log /data/mongos/
创建第一个分片用的复制集
在mongo01.com / mongo03.com / mongo05.com 上执行以下命令:
mongod --bind_ip 0.0.0.0 --replSet shard1 --dbpath /data/shard1/db \--logpath /data/shard1/log/mongod.log --port 27010 --fork \--shardsvr --wiredTigerCacheSizeGB 1
--shardsvr 声明这是集群的一个分片
--wiredTigerCacheSizeGB 设置内存大小
初始化第一个分片复制集
# 进入mongo shellmongo mongo01.com:27010#shard1复制集节点初始化rs.initiate({_id: "shard1","members" : [{"_id": 0,"host" : "mongo01.com:27010"},{"_id": 1,"host" : "mongo03.com:27010"},{"_id": 2,"host" : "mongo05.com:27010"}]})#查看复制集状态rs.status()

创建 config server 复制集
在mongo01.com / mongo03.com / mongo05.com上执行以下命令:
mongod --bind_ip 0.0.0.0 --replSet config --dbpath /data/config/db \--logpath /data/config/log/mongod.log --port 27019 --fork \--configsvr --wiredTigerCacheSizeGB 1
初始化 config server 复制集
# 进入mongo shellmongo mongo01.com:27019#config复制集节点初始化rs.initiate({_id: "config","members" : [{"_id": 0,"host" : "mongo01.com:27019"},{"_id": 1,"host" : "mongo03.com:27019"},{"_id": 2,"host" : "mongo05.com:27019"}]})
搭建 mongos
在mongo01.com / mongo03.com / mongo05.com上执行以下命令:
#启动mongos,指定config复制集mongos --bind_ip 0.0.0.0 --logpath /data/mongos/mongos.log --port 27017 --fork \--configdb config/mongo01.com:27019,mongo03.com:27019,mongo05.com:27019
mongos加入第1个分片
# 连接到mongosmongo mongo01.com:27017#添加分片 mongos>sh.addShard("shard1/mongo01.com:27010,mongo03.com:27010,mongo05.com:27010")#查看mongos状态mongos>sh.status()

创建分片集合
连接到mongos, 创建分片集合mongo mongo01.com:27017mongos>sh.status()#为了使集合支持分片,需要先开启database的分片功能mongos>sh.enableSharding("company")# 执行shardCollection命令,对集合执行分片初始化mongos>sh.shardCollection("company.emp", {_id: 'hashed'})mongos>sh.status()#插入测试数据use companyfor (var i = 0; i < 10000; i++) {db.emp.insert({i: i});}#查询数据分布db.emp.getShardDistribution()
创建第2个分片的复制集
在mongo02.com / mongo04.com / mongo06.com上执行以下命令:
mongod --bind_ip 0.0.0.0 --replSet shard2 --dbpath /data/shard2/db \--logpath /data/shard2/log/mongod.log --port 27011 --fork \--shardsvr --wiredTigerCacheSizeGB 1
初始化第二个分片的复制集
# 进入mongo shellmongo mongo06.com:27011#shard2复制集节点初始化rs.initiate({_id: "shard2","members" : [{"_id": 0,"host" : "mongo06.com:27011"},{"_id": 1,"host" : "mongo02.com:27011"},{"_id": 2,"host" : "mongo04.com:27011"}]})#查看复制集状态rs.status()
mongos加入第2个分片
# 连接到mongosmongo mongo01.com:27017#添加分片 mongos>sh.addShard("shard2/mongo02.com:27011,mongo04.com:27011,mongo06.com:27011")#查看mongos状态mongos>sh.status()
相关文章:
MongoDB分片集群搭建及扩容
分片集群搭建及扩容 整体架构 环境准备 3台Linux虚拟机,准备MongoDB环境,配置环境变量。一定要版本一致(重点),当前使用 version4.4.9 配置域名解析 在3台虚拟机上执行以下命令,注意替换实际 IP 地址 e…...
qt QSettings详解
1、概述 QSettings是Qt框架中用于应用程序配置和持久化数据的一个类。它提供了一种便捷的方式来存储和读取应用程序的设置,如窗口大小、位置、用户偏好等。QSettings支持多种存储格式,包括INI文件、Windows注册表(仅限Windows平台࿰…...
【Linux】ubuntu下一键配置vim
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:Linux权限(超详细彻底搞懂Linux的权限) 🔖流水不争,争的是滔滔…...
【NLP 9、实践 ① 五维随机向量交叉熵多分类】
目录 五维向量交叉熵多分类 规律: 实现: 1.设计模型 2.生成数据集 3.模型测试 4.模型训练 5.对训练的模型进行验证 调用模型 你的平静,是你最强的力量 —— 24.12.6 五维向量交叉熵多分类 规律: x是一个五维(索引)向量ÿ…...
信息系统安全防护攻防对抗式实验教学解决方案
一、引言 在网络和信息技术迅猛发展的今天,信息系统已成为社会各领域的关键基础设施,它支撑着电子政务、电子商务、科学研究、能源、交通和社会保障等多个方面。然而,信息系统也面临着日益严峻的网络安全威胁,网络攻击手段层出不…...
【笔记2-4】ESP32:freertos任务创建
主要参考b站宸芯IOT老师的视频,记录自己的笔记,老师讲的主要是linux环境,但配置过程实在太多问题,就直接用windows环境了,老师也有讲一些windows的操作,只要代码会写,操作都还好,开发…...
2024年12月6日Github流行趋势
项目名称:lobe-chat 项目维护者:arvinxx, semantic-release-bot, canisminor1990, lobehubbot, renovate项目介绍:一个开源的现代化设计的人工智能聊天框架。支持多AI供应商(OpenAI / Claude 3 / Gemini / Ollama / Qwen / DeepSe…...
matlab读取NetCDF文件
matlab对NetCDF文件进行信息获取和读取数据 文章目录 前言一、什么是NetCDF文件二、读取NetCDF文件数据 1.引入库 2.读入数据总结 前言 在气象学中,许多气象数据存储在NetCDF文件中,后缀为.nc,通常可以用NCL、python和MATLAB等对该…...
RDMA驱动学习(三)- cq的创建
用户通过ibv_create_cq接口创建完成队列,函数原型和常见用法如下,本节以该用法为例看下cq的创建过程。 struct ibv_cq *ibv_create_cq(struct ibv_context *context, int cqe,void *cq_context,struct ibv_comp_channel *channel,int comp_vector); cq …...
Flask使用Celery与多进程管理:优雅处理长时间任务与子进程终止技巧(multiprocessing)(subprocess)
在许多任务处理系统中,我们需要使用异步任务队列来处理繁重的计算或长时间运行的任务,如模型训练。Celery是一个广泛使用的分布式任务队列,而在某些任务中,尤其是涉及到调用独立脚本的场景中,我们需要混合使用multipro…...
Django模板系统
1.常用语法 Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作。 2.变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有…...
15. 文件操作
一、什么是文件 文件(file)通常是磁盘或固态硬盘上的一段已命名的存储区。它是指一组相关数据的有序集合。这个数据集合有一个名称,叫做文件名。文件名 是文件的唯一标识,以便用户识别和引用。文件名包括 3 个部分:文件…...
清风数学建模学习笔记——Topsis法
数模评价类(2)——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个…...
组合总和习题分析
习题:(leetcode39) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 c…...
基于eFramework车控车设中间件介绍
车设的发展,起源于汽车工业萌芽之初,经历了机械式操作的原始粗犷,到电子式调控技术的巨大飞跃,到如今智能化座舱普及,远程车控已然成为汽车标配,车设功能选项也呈现出爆发式增长,渐趋多元繁杂。…...
L17.【LeetCode笔记】另一棵树的子树
目录 1.题目 代码模板 2.分析 3.代码 4.提交结果 1.题目 https://leetcode.cn/problems/subtree-of-another-tree/description/ 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ÿ…...
BGP通过route-policy路由策略调用ip-prefix网络前缀实现负载均衡与可靠性之AS-path属性
一、实验场景 1、loopback0与loopback1模拟企业实际环境中的某个网段。 2、本例目标总公司AR3的1.1.1.1/32网段到分公司AR4的3.3.3.3/32的流量从上方的AS500自治系统走。 3、本例目标总公司AR3的4.4.4.4/32网段到分公司AR4的2.2.2.2/32的流量从下面的AS300、AS400自治系统走。…...
每日速记10道java面试题14-MySQL篇
其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...
内存图及其画法
所有的文件都存在硬盘上,首次使用的时候才会进入内存 进程:有自己的Main方法,并且依赖自己Main运行起来的程序。独占一块内存区域,互不干扰。内存中有一个一个的进程。 操作系统只认识c语言。操作系统调度驱动管理硬件࿰…...
Ansys Maxwell:Qi 无线充电组件
Qi 无线充电采用感应充电技术,无需物理连接器或电缆,即可将电力从充电站传输到兼容设备。由 WPC 管理的 Qi 标准确保了不同无线充电产品之间的互操作性。以下是 Qi v1.3 标准的核心功能: Qi v1.3 标准的主要特点 身份验证:确保充…...
SpringAI集成Ollama实战:从零构建本地AI对话服务
1. 环境准备:搭建Ollama本地AI模型服务 想要在本地运行AI对话服务,首先需要部署Ollama这个轻量级的大模型运行环境。Ollama最大的优势在于它能让开发者在普通配置的电脑上就能运行各种开源大模型,而不需要昂贵的GPU服务器。 安装过程非常简单…...
实战指南:从零构建PyTorch版Latent Diffusion Models(含DDPM/DDIM/PLMS全流程解析)
1. 环境准备与项目搭建 在开始构建Latent Diffusion Models之前,我们需要准备好开发环境。这里推荐使用Python 3.8和PyTorch 1.12版本。如果你有GPU设备,建议安装CUDA 11.3以上版本以获得更好的训练性能。 首先创建一个conda虚拟环境: conda …...
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92%
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92% 1. 引言:AI长文本理解的新突破 当我们面对动辄数千字的技术文档时,如何快速抓住核心内容一直是个难题。传统方法要么依…...
AI头像生成器实战:用Qwen3-32B为你的社交头像设计专属描述文案
AI头像生成器实战:用Qwen3-32B为你的社交头像设计专属描述文案 1. 为什么你需要一个AI头像生成器 在社交媒体时代,一个独特的头像已经成为个人品牌的重要组成部分。无论是LinkedIn上的专业形象,还是Instagram上的创意展示,头像都…...
华帝COO韩伟:破局立新,“全域协同、效率革命”迎战行业新周期
3月30日,华帝“人生净界”新品发布会在杭州举行。这场发布会,不仅官宣全新代言人张凌赫并重磅发布非遗美学瓷话套系,清晰地传递出华帝面向未来的战略航向。发布会上,华帝股份副总裁兼COO韩伟深度剖析厨电行业变革趋势,…...
抖音下载器技术解析:突破平台限制的高效内容获取方案
抖音下载器技术解析:突破平台限制的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...
Flink SQL CDC避坑指南:为什么你的Debezium源表总是漏数据?
Flink SQL CDC数据一致性实战:从Debezium陷阱到高可靠架构设计 在电商大促秒杀和金融交易风控这类对数据一致性要求严苛的场景中,Flink CDC已成为实时数仓建设的核心组件。但当你在凌晨三点收到报警通知,发现订单宽表丢失了关键字段时&#x…...
VideoAgentTrek-ScreenFilter视觉盛宴:处理4K超高清屏幕录像的效果与性能挑战
VideoAgentTrek-ScreenFilter视觉盛宴:处理4K超高清屏幕录像的效果与性能挑战 最近在折腾一些屏幕录像的后期处理,特别是那些4K分辨率、高帧率的超高清素材。说实话,直接处理这种级别的视频,对硬件和软件都是不小的考验。我试用了…...
超越GUI:用Tcl命令流高效编辑Tessent DftSpecification的三种进阶玩法
超越GUI:用Tcl命令流高效编辑Tessent DftSpecification的三种进阶玩法 在大型SoC项目中,频繁修改IJTAG网络结构是每位资深DFT工程师的日常。当设计迭代进入深水区,图形界面操作和手动文本编辑的效率瓶颈会愈发明显——每次增减SIB、调整TDR位…...
突破工厂建设瓶颈:FactoryBluePrints蓝图库带来的自动化生产革命
突破工厂建设瓶颈:FactoryBluePrints蓝图库带来的自动化生产革命 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints FactoryBluePrints是戴森球计划的开源工厂蓝图…...
