MongoDB複製集搭建&主服務器模擬切換

前言mongodb

Mongodb複製集由一組Mongod實例(進程)組成,包含一個Primary節點和多個Secondary節點,Mongodb Driver(客戶端)的全部數據都寫入Primary,Secondary從Primary同步寫入的數據,以保持複製集內全部成員存儲相同的數據集,提供數據的高可用。數據庫

複製集優點以下vim

  • 讓數據更安全;安全

  • 高數據可用性(7*24);服務器

  • 災難恢復;ide

  • 無停機維護(如備份、索引重建、故障轉移);url

  • 讀縮放(額外的副本讀取);spa

  • 副本集對應用程序是透明的。3d

1、實驗環境日誌

MongoDB複製結構圖:

image

2、實驗步驟

1.yum安裝mongodb-org

2.建立mongodb多實例

3.配置複製集

4.增長和刪除節點

5.主服務器模擬切換

3、實驗內容

---------------------------------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

修改配置文件中的監聽地址

vim /etc/mongod.conf
net:
  port: 27017
  bindIp: 0.0.0.0         #監聽地址改成監聽全部
systemctl start mongod.service

----------------------------------建立mongodb多實例---------------------

建立數據文件路徑和日誌文件

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

修改多實例的配置文件

vim /etc/mongod.conf
replication:
    replSetName: yandada                  #複製集名稱在多實例中爲同一名稱
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

image

image

同理:mongod3.conf & mongod4.conf  如上所示進行修改

啓動服務

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

image

------------------------------------------配置複製集-------------------------

[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)        #初始化數據庫
yandada:PRIMARY> rs.status()  #查看複製集狀態

注:

初始化數據庫前數據庫中若存在內容則會丟失

-------------------------------------增長和刪除節點--------------------------

yandada:PRIMARY>rs.add("192.168.218.149:27020")        #增長節點

yandada:PRIMARY>rs.remove("192.168.218.149:27020")          #刪除節點

--------------------------------主服務器模擬切換------------------------------

模擬自動切換

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選舉成主服務器

模擬手動切換

yandada:PRIMARY>rs.freeze(30)        30s不參加選舉
yandada:PRIMARY>rs.stepdown(60,30)       60s維持從服務器身份,30s進行同步
yandada:SECONDARY>
相關文章
相關標籤/搜索