返回文章列表

MongoDB分片叢集複製集設定

本文介紹在Windows環境下設定MongoDB分片叢集的複製集,包含建立多個MongoDB例項、組態複製集以及啟動相關服務的步驟。同時也涵蓋了設定伺服器複本集的建立、資料夾準備、啟動與驗證,以及組態伺服器複製集的設定與驗證。文章詳細說明瞭每個步驟所需的指令和引數,以及其作用,提供讀者在Windows系統上設定Mong

資料函式庫 系統設計

在Windows環境下設定MongoDB分片叢集,首先需要建立多個MongoDB例項,並將它們組態成複製集,以確保資料的冗餘和高用性。每個例項都需要指定不同的埠號、資料函式庫路徑和日誌路徑,並透過 --replSet 引數加入同一個複製集。設定伺服器也需要建立複本集,以確保叢集元資料的安全性。設定伺服器的建立過程與分片伺服器類別似,但需要使用 --configsvr 引數來指定其角色。最後,透過連線到MongoDB Shell,使用特定的JavaScript程式碼來初始化複製集,並使用 rs.status() 指令驗證複製集的狀態。

在Windows環境下設定MongoDB複製集

在進行MongoDB的分片叢集設定時,複製集是至關重要的組成部分。本文將詳細介紹如何在Windows環境下設定MongoDB複製集,包括建立多個MongoDB例項、組態複製集以及啟動相關服務。

步驟1:建立多個MongoDB例項

首先,我們需要在不同的埠上建立多個MongoDB例項。在本例中,我們將建立三個例項,分別執行在57017、57018和57019埠上。

1.1 執行mongod命令

為了建立第一個MongoDB例項,我們需要執行以下命令:

mongod --replSet BPBOnlineReplicaSet3 --dbpath "c:\MongoDB-Sharding\data\BPBOnlineShard3\BPBOnlineReplicaSet3\BPBOnlineDBS1" --logpath "c:\MongoDB-Sharding\log\BPBOnlineShard3\BPBOnlineReplicaSet3\BPBOnlineDBS1\mongod.log" --port 57017 --shardsvr --install --serviceName "BPBOnlineSharding MongoDB 57017" --serviceDisplayName "BPBOnlineSharding MongoDB 57017" --serviceDescription "MongoDB on Port 57017 BPBOnlineShard3-BPBOnlineReplicaSet3-BPBOnlineDBS1"

#### 內容解密:

  • --replSet:指定複製集的名稱,在本例中為BPBOnlineReplicaSet3
  • --dbpath:指定資料函式庫檔案的儲存路徑。
  • --logpath:指定日誌檔案的儲存路徑。
  • --port:指定MongoDB例項的埠號。
  • --shardsvr:指定該例項將作為分片伺服器。
  • --install:將MongoDB安裝為Windows服務。
  • --serviceName--serviceDisplayName:指定Windows服務的名稱和顯示名稱。
  • --serviceDescription:提供Windows服務的描述。

步驟2:建立並啟動Windows服務

在執行完mongod命令後,我們需要建立並啟動相應的Windows服務。

2.1 建立Windows服務

開啟命令提示符(以管理員模式),導航到MongoDB的bin目錄,然後執行以下命令來建立Windows服務:

net start "BPBOnlineSharding MongoDB 57017"

#### 內容解密:

  • net start:用於啟動Windows服務。
  • "BPBOnlineSharding MongoDB 57017":指定要啟動的服務名稱。

步驟3:組態複製集

在所有MongoDB例項成功啟動後,我們需要組態複製集。

3.1 連線到MongoDB Shell

首先,連線到其中一個MongoDB例項(例如,埠57017):

mongo --port 57017

#### 內容解密:

  • mongo:用於連線到MongoDB Shell。
  • --port 57017:指定要連線的MongoDB例項的埠號。

3.2 初始化複製集

在MongoDB Shell中,定義複製集的組態變數BPBOnlineReplicaSet3Config,然後使用rs.initiate()命令初始化複製集:

BPBOnlineReplicaSet3Config = {
  _id: "BPBOnlineReplicaSet3",
  members: [
    {_id: 0, host: "localhost:57017"},
    {_id: 1, host: "localhost:57018"},
    {_id: 2, host: "localhost:57019"}
  ]
};

rs.initiate(BPBOnlineReplicaSet3Config);

#### 內容解密:

  • _id:指定複製集的名稱。
  • members:陣列包含複製集中的所有成員,每個成員都有一個唯一的_id和對應的主機地址及埠號。
  • rs.initiate():初始化複製集。

透過上述步驟,我們成功地在Windows環境下設定了一個包含三個成員的MongoDB複製集。這個複製集對於實作資料冗餘和高用性至關重要,是構建分片叢集的基礎。

在 MongoDB 分片環境中建立設定伺服器複本集

在成功建立第三個分片後,我們現在來設定設定伺服器的複本集。設定伺服器負責儲存叢集的元資料,因此需要確保其高用性。

建立設定伺服器複本集的步驟

  1. 建立必要的資料夾:首先,我們需要為設定伺服器的 MongoDB 例項建立資料和日誌資料夾。執行以下命令來建立這些資料夾:

mkdir “c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS1” “c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS2” “c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS3” mkdir “c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS1” “c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS2” “c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS3”

   這些命令會在 `c:\MongoDB-Sharding` 下建立 `data` 和 `log` 資料夾,並在其下分別建立 `BPBOnlineConfigServer` 資料夾,最後在 `BPBOnlineConfigServer` 下為每個 MongoDB 例項建立對應的資料夾。

2. **檢查資料夾結構**:建立完成後,檢查 `c:\MongoDB-Sharding` 下的資料夾結構是否正確。應該可以看到如下結構:

c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS1 c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS2 c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS3 c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS1 c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS2 c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS3


3. **啟動第一個設定伺服器**:使用 `mongod` 命令並帶上必要的引數來啟動第一個設定伺服器。命令如下:
   ```bash
mongod --replSet BPBOnlineConfReplicaSet --dbpath "c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS1" --logpath "c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS1\config.log" --port 27040 --configsvr --install --serviceName "BPBOnlineSharding MongoDB 27040" --serviceDisplayName "BPBOnlineSharding MongoDB 27040" --serviceDescription "MongoDB on Port 27040 BPBOnlineConfigServer-BPBOnlineDBS1"

內容解密:

  • --replSet BPBOnlineConfReplicaSet:指定複本集的名稱。
  • --dbpath:指定資料函式庫檔案的路徑。
  • --logpath:指定日誌檔案的路徑。
  • --port 27040:指定 MongoDB 例項的埠號。
  • --configsvr:指示這是一個設定伺服器。
  • --install 和相關引數:將 MongoDB 例項安裝為 Windows 服務。
  1. 驗證設定伺服器的狀態:啟動後,可以使用 rs.status() 命令在主例項的 MongoDB Shell 中驗證複本集的狀態。

重點整理

  • 建立設定伺服器複本集需要先建立必要的資料和日誌資料夾。
  • 使用 mongod 命令並帶上特定引數來啟動設定伺服器例項。
  • 設定伺服器負責儲存叢集的元資料,需要確保其高用性。

MongoDB 分片組態伺服器設定

在建立MongoDB分片叢集時,組態伺服器(Config Server)扮演著至關重要的角色。本文將詳細介紹如何在Windows環境下設定MongoDB組態伺服器,並將其作為Windows服務執行。

步驟1:準備環境

首先,確保您已經安裝了MongoDB,並且熟悉基本的MongoDB操作。

步驟2:建立組態伺服器例項

我們將建立三個組態伺服器例項,分別執行在27040、27041和27042埠。

建立第一個組態伺服器例項

  1. 開啟命令提示字元(以管理員模式執行),導航至MongoDB的bin目錄。
  2. 執行以下命令以建立第一個組態伺服器例項:
mongod --replSet BPBOnlineConfReplicaSet --dbpath "c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS1" --logpath "c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS1\config.log" --port 27040 --configsvr --install --serviceName "BPBOnlineSharding MongoDB 27040" --serviceDisplayName "BPBOnlineSharding MongoDB 27040" --serviceDescription "MongoDB on Port 27040 BPBOnlineConfigServer-BPBOnlineDBS1"

內容解密:

  • --replSet BPBOnlineConfReplicaSet:指定複製集名稱。
  • --dbpath:指定資料函式庫檔案存放路徑。
  • --logpath:指定日誌檔案存放路徑。
  • --port 27040:指定服務埠號。
  • --configsvr:表明這是一個組態伺服器。
  • --install:將MongoDB安裝為Windows服務。
  • --serviceName--serviceDisplayName--serviceDescription:分別指定Windows服務的名稱、顯示名稱和描述。
  1. 啟動該Windows服務:
net start "BPBOnlineSharding MongoDB 27040"

建立第二個和第三個組態伺服器例項

重複上述步驟,分別建立執行在27041和27042埠的組態伺服器例項。命令如下:

mongod --replSet BPBOnlineConfReplicaSet --dbpath "c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS2" --logpath "c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS2\config.log" --port 27041 --configsvr --install --serviceName "BPBOnlineSharding MongoDB 27041" --serviceDisplayName "BPBOnlineSharding MongoDB 27041" --serviceDescription "MongoDB on Port 27041 BPBOnlineConfigServer-BPBOnlineDBS2"

net start "BPBOnlineSharding MongoDB 27041"

mongod --replSet BPBOnlineConfReplicaSet --dbpath "c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS3" --logpath "c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS3\config.log" --port 27042 --configsvr --install --serviceName "BPBOnlineSharding MongoDB 27042" --serviceDisplayName "BPBOnlineSharding MongoDB 27042" --serviceDescription "MongoDB on Port 27042 BPBOnlineConfigServer-BPBOnlineDBS3"

net start "BPBOnlineSharding MongoDB 27042"

內容解密:

每個組態伺服器例項的建立和啟動過程與第一個例項類別似,主要區別在於埠號、資料函式庫路徑、日誌路徑和服務名稱的不同。

MongoDB 組態伺服器複製集的設定與驗證

在 MongoDB 分片叢集中,組態伺服器(Config Server)扮演著至關重要的角色,用於儲存叢集的中繼資料。本篇文章將詳細介紹如何設定 MongoDB 組態伺服器的複製集,並驗證其狀態。

步驟一:建立 MongoDB 組態伺服器例項

首先,我們需要建立多個 MongoDB 例項來組成組態伺服器的複製集。在我們的例子中,將建立三個例項,分別執行在埠 27040、27041 和 27042 上。

命令引數說明

在建立 MongoDB 服務時,我們使用了以下引數:

  • --replSet:指定複製集的名稱。
  • --dbpath:指定資料函式庫檔案的存放路徑。
  • --logpath:指定日誌檔案的存放路徑。
  • --port:指定 MongoDB 例項的埠號。
  • --configsvr:表明該例項是組態伺服器。
  • --install:將 MongoDB 安裝為 Windows 服務。
  • --serviceName--serviceDisplayName--serviceDescription:分別指定 Windows 服務的名稱、顯示名稱和描述。

建立 Windows 服務命令範例

mongod --replSet BPBOnlineConfReplicaSet --dbpath "c:\MongoDB-Sharding\data\BPBOnlineConfigServer\BPBOnlineDBS1" --logpath "c:\MongoDB-Sharding\log\BPBOnlineConfigServer\BPBOnlineDBS1\config.log" --port 27040 --configsvr --install --serviceName "BPBOnlineSharding MongoDB 27040" --serviceDisplayName "BPBOnlineSharding MongoDB 27040" --serviceDescription "MongoDB on Port 27040 BPBOnlineConfigServer-BPBOnlineDBS1"

內容解密:

此命令用於建立第一個組態伺服器例項,並將其安裝為 Windows 服務。引數 --replSet BPBOnlineConfReplicaSet 指定了複製集的名稱,而 --configsvr 表示該例項將作為組態伺服器執行。

步驟二:啟動 MongoDB 服務並初始化複製集

  1. 啟動服務:使用 net start "BPBOnlineSharding MongoDB 27040" 命令啟動剛才建立的 Windows 服務。

    net start "BPBOnlineSharding MongoDB 27040"
    

    內容解密:

    此命令啟動名為 “BPBOnlineSharding MongoDB 27040” 的 Windows 服務,即第一個組態伺服器例項。

  2. 連線到 MongoDB Shell:使用 mongo --port 27040 命令連線到第一個 MongoDB 例項。

    mongo --port 27040
    

    內容解密:

    此命令透過 MongoDB Shell 連線到執行在埠 27040 上的 MongoDB 例項。

  3. 初始化複製集:定義一個組態變數 BPBOnlineConfReplicaSetConfig,並使用 rs.initiate() 命令初始化複製集。

    BPBOnlineConfReplicaSetConfig = {
      _id: "BPBOnlineConfReplicaSet",
      members: [
        {_id: 0, host: "localhost:27040"},
        {_id: 1, host: "localhost:27041"},
        {_id: 2, host: "localhost:27042"}
      ]
    };
    rs.initiate(BPBOnlineConfReplicaSetConfig)
    

    內容解密:

    首先定義了一個組態變數 BPBOnlineConfReplicaSetConfig,包含了複製集的名稱和成員資訊。然後,使用 rs.initiate() 命令根據此組態初始化複製集。

步驟三:驗證複製集狀態

使用 rs.status() 命令檢查複製集的狀態。

rs.status()

內容解密:

此命令用於查詢複製集的當前狀態,包括各個成員的狀態和健康狀況。