1. 程式人生 > 其它 >window搭建mongodb副本集

window搭建mongodb副本集

mongodb服務搭建副本,一臺伺服器多個埠

一、建立副本集

1、建立資料夾

F:\mongoDB> mkdir F:\mongoDB\mdb0
F:\mongoDB> mkdir F:\mongoDB\mdb1
F:\mongoDB> mkdir F:\mongoDB\mdb2

2、關閉伺服器埠

以管理員身份開啟 windows PowerShell
以下全部為以管理員身份開啟

未關閉狀態下會按服務服務端啟動,第4步配置初始化時出錯,提示“This node was not started with the replSet option”
重新從第2步開始操作

C:\Users\29059>net stop mongodb

3、手動執行mongodb服務,三個服務埠要全部執行

開啟新的Windows PowerShell,進入到安裝目錄 執行服務(三個獨立Shell)

F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27017 --dbpath F:\mongoDB\mdb0 --smallfiles --oplogSize 128

F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27018 --dbpath F:\mongoDB\mdb1 --smallfiles --oplogSize 128

F:\mongoDB\mongodb-4.0.12\bin> ./mongod --replSet mdb --port 27019 --dbpath F:\mongoDB\mdb2 --smallfiles --oplogSize 128

伺服器連線必須為OK狀態,否則結束程序,重新動行mongodb服務

4、配置

新建Shell進入mongo

F:\mongoDB\mongodb-4.0.12\bin> ./mongo --port 27017

rs.initiate()初始化副本集物件

MongoDB Enterprise > rs.initiate({_id:'mdb',members:[
... {_id:0,host:'127.0.0.1:27017'},
... {_id:1,host:'127.0.0.1:27018'},
... {_id:2,host:'127.0.0.1:27019'}]})

結果

{
        "ok" : 1,
        "operationTime" : Timestamp(1576656206, 1),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1576656206, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}

設定副本節點可讀,進入mongo 27018 ,27019分別執行獲取資訊

db.getMongo().setSlaveOk()

檢視連線狀態

MongoDB Enterprise mdb:PRIMARY> rs.status()

檢視主副本

MongoDB Enterprise mdb:PRIMARY> db.isMaster()

二、增加副本集

1> 建立資料夾:

F:\mongoDB\mongodb-4.0.12\bin> mkdir F:\mongoDB\mdb3

2> 建立埠開啟服務:新建windows Shell

./mongod --replSet mdb --port 27020 --dbpath F:\mongoDB\mdb3 --smallfiles --oplogSize 128

3> 增加副本集:

MongoDB Enterprise mdb:PRIMARY> rs.add(‘127.0.0.1:27021’)

三、移除副本集:

1> 新建windows Shell 進入副本節點,停用服務

F:\mongoDB\mongodb-4.0.12\bin> ./mongo --port 27020
MongoDB Enterprise mdb:SECONDARY> use admin
MongoDB Enterprise mdb:SECONDARY> db.shutdownServer()

2> 主伺服器中移除對應的節點

MongoDB Enterprise mdb:PRIMARY> rs.remove(‘127.0.0.1:27020’)

修改主從

獲取config ,並修priority改黑認權重

 conf=rs.config()
 conf.members[0].priority=10
 conf.members[1].priority=5
 conf.members[2].priority=1
 rs.reconfig(conf)