溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MongoDB復(fù)制集搭建&主服務(wù)器模擬切換

發(fā)布時(shí)間:2020-02-28 15:25:41 來源:網(wǎng)絡(luò) 閱讀:124 作者:xuyan184004 欄目:MongoDB數(shù)據(jù)庫

前言

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)圖:

MongoDB復(fù)制集搭建&主服務(wù)器模擬切換

二、實(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

MongoDB復(fù)制集搭建&主服務(wù)器模擬切換

MongoDB復(fù)制集搭建&主服務(wù)器模擬切換

同理: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

MongoDB復(fù)制集搭建&主服務(wù)器模擬切換

------------------------------------------配置復(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>



向AI問一下細(xì)節(jié)

免責(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)容。

AI