環境準備
服務器: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()指令查詢副本集中各實例的狀態,執行結果如下:
可以看到副本集中的各成員狀態:
health:1 //1表明狀態是正常,0表明異常
state:1 // 1表明是主庫,2表明是從庫,即做備份的機器
stateStr: “ARBITER” // ARBITER表明是仲裁服務器
二、測試
打開cmd,進入主庫,插入100條隨機數據
接着,進入到從庫,查看數據,發現已經同步了