mongodb 添加復制集
阿新 • • 發佈:2018-09-29
實驗環境 wall 備份 圖片 mct 重建 防火 兩個 setname 說明:
復制集是額外的數據副本,是跨多個服務器同步數據的過程,復制集提供了冗余並增加了數據可用性,通過復制集可以對硬件故障和中斷的服務進行恢復。其優點如下:
1 . 讓數據更安全。
2 . 高數據可用性。
3 . 災難恢復。
4 . 無停機維護(如備份、索引重建、故障轉移)。
5 . 讀綻放(額外的副本讀取)。
6 . 副本集對應用程序是透明的。
.
.
實驗環境:
.
.
實驗步驟如下:(先安裝好mongodb)
.
.
1 . 關閉防火墻。
復制集是額外的數據副本,是跨多個服務器同步數據的過程,復制集提供了冗余並增加了數據可用性,通過復制集可以對硬件故障和中斷的服務進行恢復。其優點如下:
1 . 讓數據更安全。
2 . 高數據可用性。
3 . 災難恢復。
4 . 無停機維護(如備份、索引重建、故障轉移)。
5 . 讀綻放(額外的副本讀取)。
6 . 副本集對應用程序是透明的。
.
.
實驗環境:
.
.
實驗步驟如下:(先安裝好mongodb)
.
.
1 . 關閉防火墻。
systemctl stop firewalld.service
setenforce 0
添加3個實例,為這些實例創建數據存儲目錄與日誌存儲目錄,以及提權
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 .進入配置文件,設置數據類型名稱。
vim /etc/mongod.conf
replication:
replSetName: abcrs #設置數據類型名稱
.
.
3 . 更改配置文件後,把服務刷新下。
mongod -f /etc/mongod.conf --shutdown #關閉mongod
mongod -f /etc/mongod.conf #開啟mongod
.
.
4 . 將配置文件復制一份,並更改相應的參數,作為mongod2的配置文件。
cp -p /etc/mongod.conf /etc/mongod2.conf #復制配置文件,並重命名 vim /etc/mongod2.conf path: /data/mongodb/logs/mongodb2.log #日誌文件存放位置 .... dbPath: /data/mongodb/mongodb2 #數據文件存放位置 .... 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 #查看開啟端口
此時就可以進入實例查看。
mongo --port 27018 mongo --port 27019 mongo --port 27020 #進入實例查看
.
.
7 .配置三個節點復制集。
db.stats() #查看復制集
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"}]} #配置節點服務器相關聯端口
.
.
8 . 啟動復制集。rs.initiate(cfg) #啟動復制集
.
.
9 . 可以進行節點的添加與刪除,這裏就不做演示了。代碼如下:
rs.add("192.168.200.132:27020") #添加節點
rs.remove("192.168.200.132:27020") #刪除節點
.
.
10 . 節點發生故障是不可避免的,故障轉移也必不可少。
ps aux | grep mongod #查看開啟節點
kill 6233 #關掉一個進程節點
此時的主節點就會切換到一個正常的節點上,故障轉移。
mongodb 添加復制集