当前位置: 首页 > news >正文

MongoDB分片集群搭建及扩容

分片集群搭建及扩容

整体架构

环境准备

  1. 3台Linux虚拟机,准备MongoDB环境,配置环境变量。
  2. 一定要版本一致(重点),当前使用 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虚拟机&#xff0c;准备MongoDB环境&#xff0c;配置环境变量。一定要版本一致&#xff08;重点&#xff09;&#xff0c;当前使用 version4.4.9 配置域名解析 在3台虚拟机上执行以下命令&#xff0c;注意替换实际 IP 地址 e…...

qt QSettings详解

1、概述 QSettings是Qt框架中用于应用程序配置和持久化数据的一个类。它提供了一种便捷的方式来存储和读取应用程序的设置&#xff0c;如窗口大小、位置、用户偏好等。QSettings支持多种存储格式&#xff0c;包括INI文件、Windows注册表&#xff08;仅限Windows平台&#xff0…...

【Linux】ubuntu下一键配置vim

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;Linux &#x1f339;往期回顾&#x1f339;&#xff1a;Linux权限&#xff08;超详细彻底搞懂Linux的权限&#xff09; &#x1f516;流水不争&#xff0c;争的是滔滔…...

【NLP 9、实践 ① 五维随机向量交叉熵多分类】

目录 五维向量交叉熵多分类 规律&#xff1a; 实现&#xff1a; 1.设计模型 2.生成数据集 3.模型测试 4.模型训练 5.对训练的模型进行验证 调用模型 你的平静&#xff0c;是你最强的力量 —— 24.12.6 五维向量交叉熵多分类 规律&#xff1a; x是一个五维(索引)向量&#xff…...

信息系统安全防护攻防对抗式实验教学解决方案

一、引言 在网络和信息技术迅猛发展的今天&#xff0c;信息系统已成为社会各领域的关键基础设施&#xff0c;它支撑着电子政务、电子商务、科学研究、能源、交通和社会保障等多个方面。然而&#xff0c;信息系统也面临着日益严峻的网络安全威胁&#xff0c;网络攻击手段层出不…...

【笔记2-4】ESP32:freertos任务创建

主要参考b站宸芯IOT老师的视频&#xff0c;记录自己的笔记&#xff0c;老师讲的主要是linux环境&#xff0c;但配置过程实在太多问题&#xff0c;就直接用windows环境了&#xff0c;老师也有讲一些windows的操作&#xff0c;只要代码会写&#xff0c;操作都还好&#xff0c;开发…...

2024年12月6日Github流行趋势

项目名称&#xff1a;lobe-chat 项目维护者&#xff1a;arvinxx, semantic-release-bot, canisminor1990, lobehubbot, renovate项目介绍&#xff1a;一个开源的现代化设计的人工智能聊天框架。支持多AI供应商&#xff08;OpenAI / Claude 3 / Gemini / Ollama / Qwen / DeepSe…...

matlab读取NetCDF文件

matlab对NetCDF文件进行信息获取和读取数据 文章目录 前言一、什么是NetCDF文件二、读取NetCDF文件数据 1.引入库 2.读入数据总结 前言 在气象学中&#xff0c;许多气象数据存储在NetCDF文件中&#xff0c;后缀为.nc&#xff0c;通常可以用NCL、python和MATLAB等对该…...

RDMA驱动学习(三)- cq的创建

用户通过ibv_create_cq接口创建完成队列&#xff0c;函数原型和常见用法如下&#xff0c;本节以该用法为例看下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)

在许多任务处理系统中&#xff0c;我们需要使用异步任务队列来处理繁重的计算或长时间运行的任务&#xff0c;如模型训练。Celery是一个广泛使用的分布式任务队列&#xff0c;而在某些任务中&#xff0c;尤其是涉及到调用独立脚本的场景中&#xff0c;我们需要混合使用multipro…...

Django模板系统

1.常用语法 Django模板中只需要记两种特殊符号&#xff1a; {{ }}和 {% %} {{ }}表示变量&#xff0c;在模板渲染的时候替换成值&#xff0c;{% %}表示逻辑相关的操作。 2.变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点&#xff08;.&#xff09;在模板语言中有…...

15. 文件操作

一、什么是文件 文件&#xff08;file&#xff09;通常是磁盘或固态硬盘上的一段已命名的存储区。它是指一组相关数据的有序集合。这个数据集合有一个名称&#xff0c;叫做文件名。文件名 是文件的唯一标识&#xff0c;以便用户识别和引用。文件名包括 3 个部分&#xff1a;文件…...

清风数学建模学习笔记——Topsis法

数模评价类&#xff08;2&#xff09;——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法&#xff0c;该方法的基本思想是&#xff0c;通过计算每个备选方案与理想解和负理想解之间的距离&#xff0c;从而评估每个…...

组合总和习题分析

习题&#xff1a;&#xff08;leetcode39&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 c…...

基于eFramework车控车设中间件介绍

车设的发展&#xff0c;起源于汽车工业萌芽之初&#xff0c;经历了机械式操作的原始粗犷&#xff0c;到电子式调控技术的巨大飞跃&#xff0c;到如今智能化座舱普及&#xff0c;远程车控已然成为汽车标配&#xff0c;车设功能选项也呈现出爆发式增长&#xff0c;渐趋多元繁杂。…...

L17.【LeetCode笔记】另一棵树的子树

目录 1.题目 代码模板 2.分析 3.代码 4.提交结果 1.题目 https://leetcode.cn/problems/subtree-of-another-tree/description/ 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff…...

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博客 每…...

内存图及其画法

所有的文件都存在硬盘上&#xff0c;首次使用的时候才会进入内存 进程&#xff1a;有自己的Main方法&#xff0c;并且依赖自己Main运行起来的程序。独占一块内存区域&#xff0c;互不干扰。内存中有一个一个的进程。 操作系统只认识c语言。操作系统调度驱动管理硬件&#xff0…...

Ansys Maxwell:Qi 无线充电组件

Qi 无线充电采用感应充电技术&#xff0c;无需物理连接器或电缆&#xff0c;即可将电力从充电站传输到兼容设备。由 WPC 管理的 Qi 标准确保了不同无线充电产品之间的互操作性。以下是 Qi v1.3 标准的核心功能&#xff1a; Qi v1.3 标准的主要特点 身份验证&#xff1a;确保充…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...