運維打鐵: MongoDB 數據庫集群搭建與管理

文章目錄

    • 思維導圖
    • 一、集群基礎概念
      • 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對話智能體能力,實現全雙工、實時打斷、可擴展、對話…