文章目录

    • 思维导图
    • 一、集群基础概念
      • 1. 分片集群
      • 2. 副本集
    • 二、集群搭建
      • 1. 环境准备
      • 2. 配置副本集
        • 步骤 1:修改配置文件
        • 步骤 2:启动 MongoDB 服务
        • 步骤 3:初始化副本集
      • 3. 配置分片集群
        • 步骤 1:配置配置服务器副本集
        • 步骤 2:启动路由服务器
        • 步骤 3:添加分片
    • 三、集群管理
      • 1. 监控
      • 2. 备份与恢复
      • 3. 性能调优
    • 四、常见问题与解决
      • 1. 网络问题
      • 2. 数据一致性问题
    • 总结

思维导图

MongoDB 数据库集群搭建与管理
集群基础概念
集群搭建
集群管理
常见问题与解决
分片集群
副本集
环境准备
配置副本集
配置分片集群
监控
备份与恢复
性能调优
网络问题
数据一致性问题

一、集群基础概念

1. 分片集群

MongoDB 分片集群是一种将数据分散存储在多个服务器上的方法,以处理大规模数据集和高并发读写操作。它主要由以下三部分组成:

  • 分片(Shards):存储实际的数据。每个分片可以是一个副本集,以提供数据的冗余和高可用性。
  • 配置服务器(Config Servers):存储集群的元数据,包括分片的位置和数据的分布信息。
  • 路由服务器(Mongos):客户端与集群交互的入口,根据元数据将请求路由到相应的分片。

2. 副本集

副本集是一组维护相同数据集的 MongoDB 实例。其中一个实例作为主节点(Primary),负责处理所有的写操作;其他实例作为从节点(Secondary),复制主节点的数据。当主节点出现故障时,副本集会自动进行选举,选出一个新的主节点。

二、集群搭建

1. 环境准备

假设我们有 5 台服务器,分别用于搭建 2 个副本集(每个副本集 3 个节点)和 1 个配置服务器副本集(3 个节点),以及 2 个路由服务器。

  • 安装 MongoDB:在每台服务器上安装 MongoDB 数据库。以 Ubuntu 为例,使用以下命令:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
  • 配置防火墙:开放 MongoDB 默认端口(27017、27018、27019 等)。
sudo ufw allow 27017/tcp

2. 配置副本集

步骤 1:修改配置文件

在每个副本集节点的 /etc/mongod.conf 文件中添加以下配置:

replication:replSetName: "rs0"  # 副本集名称
net:bindIp: 0.0.0.0  # 允许所有 IP 访问
步骤 2:启动 MongoDB 服务
sudo systemctl start mongod
步骤 3:初始化副本集

在其中一个节点上执行以下命令:

mongo
rs.initiate({_id: "rs0",members: [{ _id: 0, host: "node1:27017" },{ _id: 1, host: "node2:27017" },{ _id: 2, host: "node3:27017" }]
})

3. 配置分片集群

步骤 1:配置配置服务器副本集

按照上述副本集的配置方法,配置一个配置服务器副本集,副本集名称为 configrs

步骤 2:启动路由服务器

在路由服务器上,修改 /etc/mongos.conf 文件:

sharding:configDB: configrs/node1:27019,node2:27019,node3:27019  # 配置服务器副本集地址
net:bindIp: 0.0.0.0

启动路由服务器:

sudo systemctl start mongos
步骤 3:添加分片

在路由服务器上执行以下命令:

mongo
sh.addShard("rs0/node1:27017,node2:27017,node3:27017")

三、集群管理

1. 监控

可以使用 MongoDB 自带的监控工具 mongostatmongotop 来监控集群的性能。

mongostat --host mongos:27017
mongotop --host mongos:27017

2. 备份与恢复

  • 备份:使用 mongodump 命令备份数据。
mongodump --host mongos:27017 --out /backup/mongodb
  • 恢复:使用 mongorestore 命令恢复数据。
mongorestore --host mongos:27017 /backup/mongodb

3. 性能调优

  • 索引优化:为经常查询的字段创建索引。
db.collection.createIndex({ field: 1 })
  • 分片键选择:选择合适的分片键,确保数据均匀分布。

四、常见问题与解决

1. 网络问题

  • 检查防火墙配置,确保 MongoDB 端口开放。
  • 检查服务器之间的网络连接,确保可以互相通信。

2. 数据一致性问题

  • 检查副本集的状态,确保所有从节点都正常复制主节点的数据。
  • 可以使用 rs.status() 命令查看副本集状态。

总结

通过本文的介绍,我们了解了 MongoDB 数据库集群的基础概念,包括分片集群和副本集。详细介绍了集群的搭建过程,包括环境准备、副本集配置和分片集群配置。同时,还介绍了集群的管理方法,如监控、备份与恢复和性能调优等。最后,列举了一些常见问题及解决方法。通过合理的搭建和管理,MongoDB 集群可以提供高可用性、可扩展性和高性能的数据存储解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIP-Datacom Core Technology V1.0_5 OSPF特殊区域及其他特性

在前面的章节中,OSPF可以划分区域,减轻单区域里面LSDB的规模,从而减轻路由器的负荷,虽然OSPF能够划分区域,但是依旧需要维护域间路由和外部路由,这样随着网络规模的不断扩大,路由器所维护的LSDB…

实时开发IDE部署指南

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xff…

深入解析 RAGFlow:文件上传到知识库的完整流程

在 RAGFlow 这样的检索增强生成(RAG)系统中,知识库是其核心。用户上传的文档如何高效、可靠地转化为可检索的知识,是系统稳定运行的关键。今天,我们就来深入探讨 RAGFlow 中文件上传到知识库的完整流程,揭秘…

cad_recognition 笔记

Hubch/cad_recognition | DeepWiki https://github.com/Hubch/cad_recognition winget install python.python.3.10 python -m venv venv micromamba activate ./venv pip install paddleocr2.9.0 pip install poetry pip install moviepy1.0.3 下次要用conda建环境 或者…

基于odoo17的设计模式详解---构建模式

大家好,我是你的Odoo技术伙伴。在Odoo开发中,创建一个简单的记录可能只需要一行 self.env[res.partner].create({name: New Partner})。但如果我们要创建一个复杂的对象,比如一个包含了特定上下文、具有多个可选配置、并且需要执行一系列关联…

暑假算法日记第四天

目标​:刷完灵神专题训练算法题单 阶段目标📌:【算法题单】滑动窗口与双指针 LeetCode题目:2953. 统计完全子字符串1016. 子串能表示从 1 到 N 数字的二进制串其他: 今日总结 往期打卡 2953. 统计完全子字符串 跳转: 2953. 统计完全子字符串…

Linux 常用命令大全(2025简明版)

🧭 一、文件和目录操作命令说明ls列出目录内容ls -l以列表形式显示(含权限)cd /path切换目录pwd显示当前路径mkdir dir创建目录mkdir -p dir/subdir递归创建目录rm file删除文件rm -r dir删除目录(递归)rm -rf dir强制…

React Ref 指南:原理、实现与实践

前言 React Ref(引用)是React中一个强大而重要的概念,它为我们提供了直接访问DOM元素或组件实例的能力。虽然React推崇声明式编程和数据驱动的理念,但在某些场景下,我们仍需要直接操作DOM或访问组件实例。本文将深入探…

4.权重衰减(weight decay)

4.1 手动实现权重衰减 import torch from torch import nn from torch.utils.data import TensorDataset,DataLoader import matplotlib.pyplot as plt def synthetic_data(w,b,num_inputs):Xtorch.normal(0,1,size(num_inputs,w.shape[0]))yXwbytorch.normal(0,0.1,sizey.shap…

OpenCV开发-初始概念

第一章 OpenCV核心架构解析1.1 计算机视觉的基石OpenCV(Open Source Computer Vision Library)作为跨平台计算机视觉库,自1999年由Intel发起,已成为图像处理领域的标准工具。其核心价值体现在:跨平台性:支持…

LeetCode 930.和相同的二元子数组

给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。 子数组 是数组的一段连续部分。 示例 1: 输入:nums [1,0,1,0,1], goal 2 输出:4 解释: 有 4 个满足题目要求…

【论文解读】Referring Camouflaged Object Detection

论文信息 论文题目:Referring Camouflaged Object Detection 论文链接:https://arxiv.org/pdf/2306.07532 代码链接:https://github.com/zhangxuying1004/RefCOD 录用期刊:TPAMI 2025 论文单位:南开大学 ps&#xff1a…

Spring中过滤器和拦截器的区别及具体实现

在 Spring 框架中,过滤器(Filter) 和 拦截器(Interceptor) 都是用于处理 HTTP 请求的中间件,但它们在作用范围、实现方式和生命周期上有显著区别。以下是详细对比和实现方式:核心区别特性过滤器…

CANFD 数据记录仪在新能源汽车售后维修中的应用

一、前言随着新能源汽车市场如火如荼和新能源汽车电子系统的日益复杂,传统维修手段在面对复杂和偶发故障时往往捉襟见肘,CANFD 数据记录仪则凭借其独特优势,为售后维修带来新的解决方案。二、 详细介绍在新能源汽车领域,CANFD 数据…

某当CRM XlsFileUpload存在任意文件上传(CNVD-2025-10982)

免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 前言: 我们建立了一个更多,更全的…

自然语言处理与实践

文章目录Lesson1:Introduction to NLP、NLP 基础与文本预处理1.教材2.自然语言处理概述(1)NLP 的定义、发展历程与应用场景(2)NLP 的主要任务:分词、词性标注、命名实体识别、句法分析等2.文本预处理3.文本表示方法:词向量表示/词表征Lesson2…

CSS揭秘:9.自适应的椭圆

前置知识:border-radius 用法前言 本篇目标是实现一个椭圆,半椭圆,四分之一椭圆。 一、圆形和椭圆 当我们想实现一个圆形时,通常只要指定 border-radius 为 width/height 的一半就可以了。 当我们指定的border-radius的值超过了 w…

善用关系网络:开源AI大模型、AI智能名片与S2B2C商城小程序赋能下的成功新路径

摘要:本文聚焦于关系在个人成功中的关键作用,指出关系即财富,善用关系、拓展人脉是成功的重要途径。在此基础上,引入开源AI大模型、AI智能名片以及S2B2C商城小程序等新兴技术工具,探讨它们如何助力个体在复杂的关系网络…

2025年渗透测试面试题总结-2025年HW(护网面试) 34(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 2025年HW(护网面试) 34 一、网站信息收集 核心步骤与工具 二、CDN绕过与真实IP获取 6大实战方法 三、常…

萤石全新上线企业AI对话智能体,开启IoT人机交互新体验

一、什么是萤石AI对话智能体?如何让设备听得到、听得懂?这次萤石发布的AI对话Agent,让设备能进行自然、流畅、真人感的AI对话智能体,帮助开发者打造符合业务场景的AI对话智能体能力,实现全双工、实时打断、可扩展、对话…