默認(rèn)主機(jī)已下載
Docker MongoDB(4.2.0)鏡像
:http://www.reibang.com/p/efb8619aa0dd
完整實(shí)現(xiàn)參考:https://www.cnblogs.com/wusy/p/10460361.html(非docker)
擴(kuò)展:
分片
:https://www.cnblogs.com/leohahah/p/8652572.html | https://www.cnblogs.com/wusy/p/10723599.html
-
運(yùn)行鏡像描滔,與單機(jī)模式不同,需要
每個(gè)副本集節(jié)點(diǎn)
都添加容器啟動(dòng)參數(shù):--replSet {replSetName}
docker run -d -p {PORT}:27017 -v $PWD/db:/data/db --name mongo mongo --replSet {replSetName}
-
選取
任意節(jié)點(diǎn)
作為主節(jié)點(diǎn)
,進(jìn)入主節(jié)點(diǎn)
容器,執(zhí)行config={"_id": "{replSetName}", "members":[ {"_id": 0,"host":"{IP}:{PORT}"}, {"_id": 1,"host":"{IP}:{PORT}"}, {"_id": 2,"host":"{IP}:{PORT}"} # 根據(jù)實(shí)際情況增加節(jié)點(diǎn)吆豹,如果是仲裁節(jié)點(diǎn)則節(jié)點(diǎn)配置為:{"_id": n,"host":"{IP}:{PORT}",arbiterOnly:true} ] }
-
在
主節(jié)點(diǎn)
容器中拯刁,初始化副本集rs.initiate(config)
*以上配置完成,網(wǎng)上推薦在節(jié)點(diǎn)中在增加仲裁節(jié)點(diǎn)
御雕,說(shuō)是因?yàn)閙ongodb默認(rèn)的選舉算法蛔屹,比較容易出現(xiàn)選舉不成功的情況(選舉票數(shù)一致)削樊。根據(jù)實(shí)踐測(cè)試,mongodb自動(dòng)選舉情況正常兔毒,因此暫時(shí)未配置仲裁節(jié)點(diǎn)
-
參數(shù)說(shuō)明
-
priority
:優(yōu)先級(jí)漫贞,范圍0-100,優(yōu)先級(jí)高的優(yōu)先選舉為主節(jié)點(diǎn)
育叁,仲裁節(jié)點(diǎn)
和延遲節(jié)點(diǎn)
priority=0不參與主節(jié)點(diǎn)
的競(jìng)爭(zhēng) -
arbiterOnly
:申明該節(jié)點(diǎn)為仲裁節(jié)點(diǎn)
-
-
常用命令
-
其他非
主節(jié)點(diǎn)
默認(rèn)不支持?jǐn)?shù)據(jù)可讀迅脐,配置可讀
Robo 3T使用非主節(jié)點(diǎn)
可創(chuàng)建連接并查看數(shù)據(jù),但是無(wú)法修改數(shù)據(jù)擂红,因?yàn)樗趧?chuàng)建連接之后自動(dòng)執(zhí)行了rs.slaveOk()
)rs.slaveOk()
-
查看節(jié)點(diǎn)配置
rs.conf()
-
查看節(jié)點(diǎn)狀態(tài)
rs.status()
-
查看是否為
主節(jié)點(diǎn)
rs.isMaster()
-
新增節(jié)點(diǎn)
rs.add("{IP}:{PORT}")
-
新增
仲裁節(jié)點(diǎn)
rs.addArb("{IP}:{PORT}") rs.addA("{IP}:{PORT}",arbiterOnly:true)
-
刪除節(jié)點(diǎn)
rs.remove("{IP}:{PORT}")
-