環(huán)境配置
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、城北網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為城北等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。架構(gòu):一主兩從(三臺(tái)虛擬機(jī))
系統(tǒng)版本:CentOS Linux release 7.4.1708 (Core)
MongoDB版本:3.0.15
MongoDB安裝
以下操作需要在三臺(tái)虛擬機(jī)都進(jìn)行
下載yum源配置
wget https://repo.mongodb.org/yum/redhat/mongodb-org-3.0.repo mv mongodb-org-3.0.repo /etc/yum.repos.d/安裝mongodb
yum -y install mongodb-org修改mongodb配置文件
# 修改監(jiān)聽地址為0.0.0.0 net: port: 27017 bindIp: 0.0.0.0 # 修改副本集配置,此項(xiàng)為之后配置副本集所需要的配置 replication: oplogSizeMB: 20480 replSetName: gogen說(shuō)明:
oplogSizeMB:此為主從服務(wù)器在同步的時(shí)候需要的一塊交換空間,如果服務(wù)器空間夠大,那么此空間盡量足夠大,單位為MB。此值更改時(shí)需要注意,不可隨意更改
replSetName:此為副本集名稱,自己自定義
修改內(nèi)核配置
# 最好加入開機(jī)自啟動(dòng)配置文件 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag修改文件描述符/etc/security/limits.conf
# 在配置文件最后加入以后內(nèi)容 mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 32000 mongod hard nproc 32000啟動(dòng)服務(wù)
chkconfig mongod on service mongod start副本集部署
在任何一臺(tái)服務(wù)器上面執(zhí)行下面命令
登錄至monogdb
mongo切換至admin庫(kù)
> use admin定義一個(gè)config變量,注意更改id名稱為自己的副本集名,host為自己的實(shí)際主機(jī)IP和監(jiān)聽端口,變量名也可以自己定義
> config={_id:"gogen",members:[{_id:0,host:"192.168.6.91:27017"},{_id:1,host:"192.168.6.92:27017"},{_id:2,host:"192.168.6.93:27017"}]}初始化配置,返回 則創(chuàng)建成功
> rs.initiate(config) { "ok" : 1 } gogen:OTHER> gogen:PRIMARY>說(shuō)明
{ "ok" : 1 }:代表執(zhí)行成功,如果不成功返回其它結(jié)果
gogen:OTHER>:上條命令執(zhí)行成功后提示符會(huì)變成這樣,代表正在創(chuàng)建副本集,但此主機(jī)的角色還不確定,所以為OTHER
gogen:PRIMARY>:過(guò)一會(huì)再次直接回車就提示符就變成了PRIMARY(代表主),如果為SECONDARY(代表從)
副本集權(quán)重配置
在主上面登錄至monogdb再執(zhí)行下面的命令,首先定義一個(gè)變量
gogen:PRIMARY> cfg=rs.config()更改第一個(gè)主機(jī)的權(quán)重為100
gogen:PRIMARY> cfg.members[0].priority=100更改第二個(gè)主機(jī)的權(quán)重為90
gogen:PRIMARY> cfg.members[1].priority=90更改第三個(gè)主機(jī)的權(quán)重為1
gogen:PRIMARY> cfg.members[2].priority=1刷新配置
gogen:PRIMARY> rs.reconfig(cfg)副本集基本命令使用
查看副本集狀態(tài)
gogen:PRIMARY> rs.status()# 反回結(jié)果參考 { "set" : "gogen", "date" : ISODate("2018-03-07T02:40:00.403Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "192.168.6.91:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 54870, "optime" : Timestamp(1520336246, 1), "optimeDate" : ISODate("2018-03-06T11:37:26Z"), "electionTime" : Timestamp(1520335742, 1), "electionDate" : ISODate("2018-03-06T11:29:02Z"), "configVersion" : 2, "self" : true }, { "_id" : 1, "name" : "192.168.6.92:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 54661, "optime" : Timestamp(1520336246, 1), "optimeDate" : ISODate("2018-03-06T11:37:26Z"), "lastHeartbeat" : ISODate("2018-03-07T02:40:00.046Z"), "lastHeartbeatRecv" : ISODate("2018-03-07T02:39:59.466Z"), "pingMs" : 0, "syncingTo" : "192.168.6.91:27017", "configVersion" : 2 }, { "_id" : 2, "name" : "192.168.6.93:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 54661, "optime" : Timestamp(1520336246, 1), "optimeDate" : ISODate("2018-03-06T11:37:26Z"), "lastHeartbeat" : ISODate("2018-03-07T02:39:59.914Z"), "lastHeartbeatRecv" : ISODate("2018-03-07T02:39:59.297Z"), "pingMs" : 0, "syncingTo" : "192.168.6.91:27017", "configVersion" : 2 } ], "ok" : 1 }查看副本集配置
gogen:PRIMARY> rs.config()# 返回結(jié)果參考 { "_id" : "gogen", "version" : 2, "members" : [ { "_id" : 0, "host" : "192.168.6.91:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 100, "tags" : { }, "slaveDelay" : 0, "votes" : 1 }, { "_id" : 1, "host" : "192.168.6.92:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 90, "tags" : { }, "slaveDelay" : 0, "votes" : 1 }, { "_id" : 2, "host" : "192.168.6.93:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatTimeoutSecs" : 10, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 } } }測(cè)試
在主上面寫入一些數(shù)據(jù),查看從是否可以從主同步
測(cè)試主宕機(jī)(直接關(guān)機(jī),或者停止服務(wù)),是否可以在另外兩臺(tái)從里同重新選舉出新主
在新主上面再寫入數(shù)據(jù),查看另外一個(gè)從是否可以同步
恢復(fù)宕機(jī)的舊主服務(wù)器,查看新寫入的數(shù)據(jù)是否可以同步到舊主,另外查看是否會(huì)將主奪取回來(lái)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。