Linux安裝MongoDB雙機熱備份(主從復(fù)制)

1. 概述

主從復(fù)制作用:數(shù)據(jù)備份、讀寫分離
雙機熱備份:部署兩個節(jié)點的MongoDB服務(wù),配置一主一從,主節(jié)點添加數(shù)據(jù),將自動備份到從節(jié)點上面,保證主機宕機后數(shù)據(jù)不丟失,同時可以繼續(xù)提供數(shù)據(jù)讀取服務(wù)(主服務(wù)掛掉,從服務(wù)將無法在進行寫入數(shù)據(jù),只能提供數(shù)據(jù)讀取服務(wù))
一主多從:部署多個節(jié)點的MongoDB服務(wù),配置一主多從,數(shù)據(jù)也會自動備份到所有從節(jié)點上面,保證主機宕機后數(shù)據(jù)不丟失,同時可以根據(jù)從節(jié)點的優(yōu)先級進行選取新的主節(jié)點,繼續(xù)提供讀寫服務(wù)(主從關(guān)系跟服務(wù)設(shè)置的優(yōu)先級有直接關(guān)系 優(yōu)先級參數(shù):priority 數(shù)字越大優(yōu)先級越高)

2. 準備服務(wù)-雙機熱備份(兩個節(jié)點)

使用上面的方式,在不同服務(wù)器上安裝并啟動MongoDB服務(wù)

3. 修改配置

將啟動時使用的配置文件mongodb.conf中添加下面的副文本集名稱配置,將權(quán)限控制參數(shù)改為false(auth=false),然后將服務(wù)進行重新啟動即可(testrs是自定義的副本集名稱)
#使用此設(shè)置來配置復(fù)制副本集。指定一個副本集名稱作為參數(shù),所有主機都必須有相同的名稱作為同一個副本集
replSet=testrs

然后啟動每個服務(wù)的客戶端查看當前節(jié)點為主節(jié)點還是從節(jié)點;
1). 如果服務(wù)部署在不同服務(wù)器上,直接啟動/bin目錄下的mongo即可 命令:./ mongo
2). 如果服務(wù)部署在同一臺服務(wù)器上,使用不同端口及配置文件進行啟動的,啟動客戶端使用該命令 命令:./mongo 127.0.0.1:27018/

image.png

image.png

4. 測試

經(jīng)過上面的一系列操作后,主從配置就完成了,接下來可以進行數(shù)據(jù)同步測試

第一步:在主庫上面切換到admin,然后進行添加數(shù)據(jù)(命令:db.testdb1.insert([{"name":"zs"}]))

image.png

在從庫上查詢該數(shù)據(jù)(命令:db.testdb1.find({name:"zs"})),會出現(xiàn)下面如圖的錯誤,因為從庫沒有查詢數(shù)據(jù)權(quán)限,所以需要設(shè)置查詢權(quán)限

image.png

設(shè)置從庫查詢權(quán)限,使用命令:rs.secondaryOk()
然后在使用查詢命令進行查詢(命令:db.testdb1.find({name:"zs"}))就會看到如下圖的查詢結(jié)果:

image.png

如上圖所示,數(shù)據(jù)已經(jīng)同步到從庫上面了,這樣雙機熱備份就已經(jīng)實現(xiàn)了,上面的情況不包含權(quán)限控制

5. 權(quán)限控制

上面的情況已經(jīng)完成了MongoDB的主從復(fù)制功能,但是我們把權(quán)限沒有開放,啟動時使用的配置中auth配置的值為false,說明沒有添加權(quán)限,接下來就開放一下權(quán)限配置;
首先需要主從之間通信的一個keyFile文件,根據(jù)官網(wǎng)提供的說明,這個keyfile是可以任意內(nèi)容的,只要保證所有集群中的機器都擁有同樣的文件即可。

我這里將keyFile文件放到了MongoDB的bin目錄下了,使用openssl rand -base64 1024 > /usr/local/mongodb-master/bin/mongodb.key 命令生成;

然后將mongodb.key文件復(fù)制到每臺從服務(wù)上面,在每臺服務(wù)的啟動文件上添加 keyFile=/usr/local/mongodb-master/keyfile/mongodb.key 配置項 ,然后將auth屬性值改為true,這樣就完成了權(quán)限配置

重啟主從兩個節(jié)點,這樣主機添加的數(shù)據(jù),就會同步到從機上面了?。?!

添加或刪除從節(jié)點參考文章:
https://blog.csdn.net/weixin_44839444/article/details/105666163

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容