MongoDB副本集配置(一主一從一仲裁)

環境準備

服務器:Windows2008 R2
MongoDB
版本:3.6.5
副本集方案:1主庫+1從庫+1個仲裁服務器
注意:部署生產環境的時候最好將不同的節點部署在不同的服務器上,我爲了演示,因此直接部署在同一臺

一、安裝MongoDB

1.拷貝3份MongoDB到D盤下,目錄依次爲

Mongodb_Master    //  192.168.11.29 27311 主庫   實際在數據庫運行時,哪個實例是主庫是不一定的,但爲了區分文件夾,暫且如此起名了
Mongodb_Slaver     //  192.168.11.29 27321 從庫
Mongodb_Arbiter    //  192.168.11.29 27331 仲裁服務器

2.主庫配置

打開cmd,進入bin目錄下,執行以下命令創建主庫數據庫服務:

D:\Mondodb\Mongodb_Master\bin>mongod --replSet shard1 --port 27311 --logpath "D:\Mongodb\Mongodb_Master\data\log\mongod.log" --logappend --dbpath "D:\Mongodb\Mongodb_Master\data\db" --serviceName "mongo_master" --serviceDisplayName "mongo_master" --install 

3.從庫配置

打開cmd,進入bin目錄下,執行以下命令創建主庫數據庫服務:

D:\Mondodb\Mongodb_Slaver\bin>mongod --replSet shard1 --port 27321 --logpath "D:\Mongodb\Mongodb_Slaver\data\log\mongod.log" --logappend --dbpath "D:\Mongodb\Mongodb_Slaver\data\db" --serviceName "mongo_slaver" --serviceDisplayName "mongo_slaver" --install

4.仲裁服務器配置

打開cmd,進入bin目錄下,執行以下命令創建主庫數據庫服務:

D:\Mondodb\Mongodb_Arbiter\bin>mongod --replSet shard1 --port 27331 --logpath "D:\Mongodb\Mongodb_Arbiter\data\log\mongod.log" --logappend --dbpath "D:\Mongodb\Mongodb_Arbiter\data\db" --serviceName "mongo_arbiter" --serviceDisplayName "mongo_arbiter" --install

5.啓動服務

6.將三個實例連接在一起

(1) 打開cmd,進入主庫bin目錄下,連接:

D:\Mondodb\Mongodb_Master\bin>mongo –port 27311

(2) 執行mongd 命令:

>config={_id:'shard1',members:[{_id:0,host:'127.0.0.1:27311'},{_id:1,host:'127.0.0.1:27321'},{_id:3,host:'127.0.0.1:27331', arbiterOnly:true}]}

(3) 說明:_id的值“shard1”是配置名稱,多處使用,需統一。members下就是各mongo實例,第三個成員中的arbiterOnly:true表明改成員是仲裁服務器。

(4) 然後通過下面的指令啓動樣本集

>rs.initiate(config)

顯示OK,表示副本集創建成功。

當初始化配置信息後,可以明顯的看到mongodb的命令行發生了變化,會顯示出當前節點所屬的副本集名稱和節點類型。

(5) 查詢副本集狀態

使用rs.status()指令查詢副本集中各實例的狀態,執行結果如下:

可以看到副本集中的各成員狀態:

health1   //1表明狀態是正常,0表明異常

state:1     // 1表明是主庫,2表明是從庫,即做備份的機器

stateStr: “ARBITER” // ARBITER表明是仲裁服務器

二、測試

打開cmd,進入主庫,插入100條隨機數據

接着,進入到從庫,查看數據,發現已經同步了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章