說(shuō)明:
復(fù)制集是額外的數(shù)據(jù)副本,是跨多個(gè)服務(wù)器同步數(shù)據(jù)的過(guò)程,復(fù)制集提供了冗余并增加了數(shù)據(jù)可用性,通過(guò)復(fù)制集可以對(duì)硬件故障和中斷的服務(wù)進(jìn)行恢復(fù)。其優(yōu)點(diǎn)如下:
1 . 讓數(shù)據(jù)更安全。
2 . 高數(shù)據(jù)可用性。
3 . 災(zāi)難恢復(fù)。
4 . 無(wú)停機(jī)維護(hù)(如備份、索引重建、故障轉(zhuǎn)移)。
5 . 讀綻放(額外的副本讀?。?。
6 . 副本集對(duì)應(yīng)用程序是透明的。
.
.
實(shí)驗(yàn)環(huán)境:
.
.
實(shí)驗(yàn)步驟如下:(先安裝好mongodb)
.
.
1 . 關(guān)閉防火墻。
systemctl stop firewalld.service
setenforce 0
添加3個(gè)實(shí)例,為這些實(shí)例創(chuàng)建數(shù)據(jù)存儲(chǔ)目錄與日志存儲(chǔ)目錄,以及提權(quán)
mkdir -p /data/mongodb/mongodb{2,3,4}
mkdir -p /data/mongodb/logs
touch /data/mongodb/logs/mongodb{2,3,4}.log
chmod 777 /data/mongodb/logs/*.log
.
.
2 .進(jìn)入配置文件,設(shè)置數(shù)據(jù)類(lèi)型名稱(chēng)。
vim /etc/mongod.conf
replication:
replSetName: abcrs #設(shè)置數(shù)據(jù)類(lèi)型名稱(chēng)
.
.
3 . 更改配置文件后,把服務(wù)刷新下。
mongod -f /etc/mongod.conf --shutdown #關(guān)閉mongod
mongod -f /etc/mongod.conf #開(kāi)啟mongod
.
.
4 . 將配置文件復(fù)制一份,并更改相應(yīng)的參數(shù),作為mongod2的配置文件。
cp -p /etc/mongod.conf /etc/mongod2.conf #復(fù)制配置文件,并重命名
vim /etc/mongod2.conf
path: /data/mongodb/logs/mongodb2.log #日志文件存放位置
....
dbPath: /data/mongodb/mongodb2 #數(shù)據(jù)文件存放位置
....
port: 27018 #端口號(hào)
.
.
5 . 同樣更改另外兩個(gè)配置文件。
cp -p /etc/mongod2.conf /etc/mongod3.conf
cp -p /etc/mongod2.conf /etc/mongod4.conf
.
.
6 . 更改好后,啟動(dòng)實(shí)例。
mongod -f /etc/mongod2.conf
mongod -f /etc/mongod3.conf
mongod -f /etc/mongod4.conf #啟動(dòng)實(shí)例
查看一下端口是否開(kāi)啟。netstat -ntap #查看開(kāi)啟端口
此時(shí)就可以進(jìn)入實(shí)例查看。
mongo --port 27018
mongo --port 27019
mongo --port 27020 #進(jìn)入實(shí)例查看
.
.
7 .配置三個(gè)節(jié)點(diǎn)復(fù)制集。
db.stats() #查看復(fù)制集
cfg={"_id":"abcrs","members":[{"_id":0,"host":"192.168.200.132:27017"},{"_id":1,"host":"192.168.200.132:27018"},{"_id":2,"host":"192.168.200.132:27019"}]} #配置節(jié)點(diǎn)服務(wù)器相關(guān)聯(lián)端口
.
.
8 . 啟動(dòng)復(fù)制集。rs.initiate(cfg) #啟動(dòng)復(fù)制集
.
.
9 . 可以進(jìn)行節(jié)點(diǎn)的添加與刪除,這里就不做演示了。代碼如下:
rs.add("192.168.200.132:27020") #添加節(jié)點(diǎn)
rs.remove("192.168.200.132:27020") #刪除節(jié)點(diǎn)
.
.
10 . 節(jié)點(diǎn)發(fā)生故障是不可避免的,故障轉(zhuǎn)移也必不可少。
ps aux | grep mongod #查看開(kāi)啟節(jié)點(diǎn)
kill 6233 #關(guān)掉一個(gè)進(jìn)程節(jié)點(diǎn)
此時(shí)的主節(jié)點(diǎn)就會(huì)切換到一個(gè)正常的節(jié)點(diǎn)上,故障轉(zhuǎn)移。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。