說明:
復(fù)制集是額外的數(shù)據(jù)副本,是跨多個服務(wù)器同步數(shù)據(jù)的過程,復(fù)制集提供了冗余并增加了數(shù)據(jù)可用性,通過復(fù)制集可以對硬件故障和中斷的服務(wù)進(jìn)行恢復(fù)。其優(yōu)點如下:
1 . 讓數(shù)據(jù)更安全。
2 . 高數(shù)據(jù)可用性。
3 . 災(zāi)難恢復(fù)。
4 . 無停機(jī)維護(hù)(如備份、索引重建、故障轉(zhuǎn)移)。
5 . 讀綻放(額外的副本讀取)。
6 . 副本集對應(yīng)用程序是透明的。
.
.
實驗環(huán)境:
.
.
實驗步驟如下:(先安裝好MongoDB)
.
.
1 . 關(guān)閉防火墻。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比離石網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式離石網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋離石地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
systemctl stop firewalld.service
setenforce 0
添加3個實例,為這些實例創(chuàng)建數(shù)據(jù)存儲目錄與日志存儲目錄,以及提權(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ù)類型名稱。
vim /etc/mongod.conf
replication:
replSetName: abcrs #設(shè)置數(shù)據(jù)類型名稱
.
.
3 . 更改配置文件后,把服務(wù)刷新下。
mongod -f /etc/mongod.conf --shutdown #關(guān)閉mongod
mongod -f /etc/mongod.conf #開啟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 #端口號
.
.
5 . 同樣更改另外兩個配置文件。
cp -p /etc/mongod2.conf /etc/mongod3.conf
cp -p /etc/mongod2.conf /etc/mongod4.conf
.
.
6 . 更改好后,啟動實例。
mongod -f /etc/mongod2.conf
mongod -f /etc/mongod3.conf
mongod -f /etc/mongod4.conf #啟動實例
查看一下端口是否開啟。netstat -ntap #查看開啟端口
此時就可以進(jìn)入實例查看。
mongo --port 27018
mongo --port 27019
mongo --port 27020 #進(jìn)入實例查看
.
.
7 .配置三個節(jié)點復(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é)點服務(wù)器相關(guān)聯(lián)端口
.
.
8 . 啟動復(fù)制集。rs.initiate(cfg) #啟動復(fù)制集
.
.
9 . 可以進(jìn)行節(jié)點的添加與刪除,這里就不做演示了。代碼如下:
rs.add("192.168.200.132:27020") #添加節(jié)點
rs.remove("192.168.200.132:27020") #刪除節(jié)點
.
.
10 . 節(jié)點發(fā)生故障是不可避免的,故障轉(zhuǎn)移也必不可少。
ps aux | grep mongod #查看開啟節(jié)點
kill 6233 #關(guān)掉一個進(jìn)程節(jié)點
此時的主節(jié)點就會切換到一個正常的節(jié)點上,故障轉(zhuǎn)移。