您好,登錄后才能下訂單哦!
前言
Mongodb復(fù)制集由一組Mongod實(shí)例(進(jìn)程)組成,包含一個(gè)Primary節(jié)點(diǎn)和多個(gè)Secondary節(jié)點(diǎn),Mongodb Driver(客戶端)的所有數(shù)據(jù)都寫入Primary,Secondary從Primary同步寫入的數(shù)據(jù),以保持復(fù)制集內(nèi)所有成員存儲(chǔ)相同的數(shù)據(jù)集,提供數(shù)據(jù)的高可用。
復(fù)制集優(yōu)勢(shì)如下
讓數(shù)據(jù)更安全;
高數(shù)據(jù)可用性(7*24);
災(zāi)難恢復(fù);
無停機(jī)維護(hù)(如備份、索引重建、故障轉(zhuǎn)移);
讀縮放(額外的副本讀取);
副本集對(duì)應(yīng)用程序是透明的。
一、實(shí)驗(yàn)環(huán)境
MongoDB復(fù)制結(jié)構(gòu)圖:
二、實(shí)驗(yàn)步驟
1.yum安裝mongodb-org
2.創(chuàng)建mongodb多實(shí)例
3.配置復(fù)制集
4.增加和刪除節(jié)點(diǎn)
5.主服務(wù)器模擬切換
三、實(shí)驗(yàn)內(nèi)容
---------------------------------yum安裝monggodb-org------------------
vim /etc/yum.repos.d/mongodb.repo
[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc yum install mongodb-org -y
修改配置文件中的監(jiān)聽地址
vim /etc/mongod.conf
net: port: 27017 bindIp: 0.0.0.0 #監(jiān)聽地址改為監(jiān)聽所有
systemctl start mongod.service
----------------------------------創(chuàng)建mongodb多實(shí)例---------------------
創(chuàng)建數(shù)據(jù)文件路徑和日志文件
mkdir -p /data/mongodb/mongodb{2,3,4} mkdir -p /data/mongodb/logs touch /data/mongodb/logs/mongodb2.log touch /data/mongodb/logs/mongodb3.log touch /data/mongodb/logs/mongodb4.log chmod 777 /data/mongodb/logs/*.log
修改多實(shí)例的配置文件
vim /etc/mongod.conf
replication: replSetName: yandada #復(fù)制集名稱在多實(shí)例中為同一名稱
cp -p /etc/mongod.conf /etc/mongod2.conf cp -p /etc/mongod.conf /etc/mongod3.conf cp -p /etc/mongod.conf /etc/mongod4.conf
vim /etc/mongod2.conf
同理:mongod3.conf & mongod4.conf 如上所示進(jìn)行修改
啟動(dòng)服務(wù)
mongod -f /etc/mongod.conf --shutdown mongod -f /etc/mongod.conf mongod -f /etc/mongod2.conf mongod -f /etc/mongod3.conf mongod -f /etc/mongod4.conf
------------------------------------------配置復(fù)制集-------------------------
[root@yandada3 mongodb2]#mongo >cfg={"_id":"yandada","members": [{"_id":0,"host":"192.168.218.149:27017"},{"_id":1,"host":"192.168.218.149:27018"},{"_id":2,"host":"192.168.218.149:27019"}]} >rs.initiate(cfg) #初始化數(shù)據(jù)庫
yandada:PRIMARY> rs.status() #查看復(fù)制集狀態(tài)
注:
初始化數(shù)據(jù)庫前數(shù)據(jù)庫中若存在內(nèi)容則會(huì)丟失
-------------------------------------增加和刪除節(jié)點(diǎn)--------------------------
yandada:PRIMARY>rs.add("192.168.218.149:27020") #增加節(jié)點(diǎn) yandada:PRIMARY>rs.remove("192.168.218.149:27020") #刪除節(jié)點(diǎn)
--------------------------------主服務(wù)器模擬切換------------------------------
模擬自動(dòng)切換
mongod -f /etc/mongod.conf –shutdown
mongo --port 27018
rs.status()
"_id" : 1,
"name" : "192.168.218.149:27018",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY", #27018選舉成主服務(wù)器
模擬手動(dòng)切換
yandada:PRIMARY>rs.freeze(30) 30s不參加選舉 yandada:PRIMARY>rs.stepdown(60,30) 60s維持從服務(wù)器身份,30s進(jìn)行同步
yandada:SECONDARY>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。