溫馨提示×

MongoDB在Linux上的集群搭建方法

小樊
51
2025-09-06 18:58:39
欄目: 云計算

以下是在Linux上搭建MongoDB集群的兩種常見方式(副本集和分片集群)的步驟要點:

一、副本集集群(高可用)

1. 環境準備

  • 至少3臺服務器(生產環境建議奇數節點),確保網絡互通,關閉防火墻或開放對應端口(默認27017)。
  • 安裝MongoDB:通過包管理器(如apt/yum)安裝,或從官網下載二進制包解壓。

2. 配置實例

  • 編輯配置文件/etc/mongod.conf,關鍵參數:
    storage:
      dbPath: /data/mongodb/db  # 數據目錄
      journal:
        enabled: true
    systemLog:
      path: /var/log/mongodb/mongod.log
      logAppend: true
    net:
      bindIp: 0.0.0.0           # 允許所有IP訪問(生產環境需限制)
      port: 27017               # 端口(每個節點需唯一)
    replication:
      replSetName: "rs0"        # 副本集名稱(所有節點一致)
    

3. 啟動服務

  • 在每個節點執行:
    sudo systemctl start mongod
    sudo systemctl enable mongod
    

4. 初始化副本集

  • 連接到任意一個節點的MongoDB Shell:
    mongo --host <節點IP> --port 27017
    
  • 執行初始化命令:
    rs.initiate({
      _id: "rs0",
      members: [
        { _id: 0, host: "節點1:27017" },
        { _id: 1, host: "節點2:27017" },
        { _id: 2, host: "節點3:27017" }
      ]
    })
    
  • 驗證狀態:
    rs.status()  // 查看主從節點狀態
    

5. 添加節點(可選)

  • 連接到主節點,執行:
    rs.add("新節點IP:27017")
    

二、分片集群(水平擴展)

1. 架構規劃

  • 核心組件
    • Config Server(配置服務器):存儲元數據,需3節點副本集。
    • Shard(分片):數據分片存儲,每個分片為副本集(建議3節點)。
    • Mongos(路由):客戶端入口,無狀態,可部署多節點實現高可用。

2. 配置步驟

  • 配置服務器(副本集)

    1. 在3個節點上配置mongod.conf,指定replSetName: configRssharding.clusterRole: configsvr。
    2. 啟動服務并初始化副本集:
      mongod -f config-1.conf  # 重復3個節點
      rs.initiate({ _id: "configRs", members: [...] })
      
  • 分片服務器(副本集)

    1. 為每個分片創建3個節點,配置replSetName: shardXRs(如shard1Rs)和sharding.clusterRole: shardsvr。
    2. 啟動服務并初始化副本集。
  • Mongos路由

    1. 在2個節點上配置mongos.conf,指定configDB: configRs/節點1:27019,節點2:27019,節點3:27019。
    2. 啟動服務:
      mongos -f mongos.conf
      

3. 集群初始化與分片添加

  • 連接到任意Mongos節點:
    mongo --host <mongos-IP> --port 27017
    
  • 添加分片:
    sh.addShard("shard1Rs/節點4:27001,節點5:27001,節點6:27001")
    
  • 啟用分片(針對指定數據庫和集合):
    sh.enableSharding("mydb")
    sh.shardCollection("mydb.users", { "_id": "hashed" })  // 按ID哈希分片
    

4. 驗證集群

  • 查看分片狀態:
    sh.status()
    
  • 測試數據分布:插入數據后檢查各分片的Chunk分布。

關鍵注意事項

  1. 版本一致性:所有節點需使用相同版本的MongoDB。
  2. 端口規劃:副本集節點端口需唯一(如27017、27018、27019),分片和配置服務器需預留足夠端口。
  3. 安全配置:生產環境需啟用認證(security.authorization: enabled)和密鑰文件(keyFile)。
  4. 監控與維護:使用mongostat、mongotop等工具監控集群狀態,定期備份數據。

詳細步驟可參考官方文檔:MongoDB副本集文檔、分片集群文檔。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女