mongodb主從同步配置實(shí)戰(zhàn)詳細(xì)教程(建議收藏)
MongoDB主從同步
主從同步是MongoDB最常用的同步方式,也是一個(gè)簡單的數(shù)據(jù)庫同步備份的集群技術(shù),這種方式很靈活,可用于備份,故障恢復(fù),讀擴(kuò)展等。
最基本的設(shè)置方式就是建立一個(gè)主節(jié)點(diǎn)和一個(gè)或多個(gè)從節(jié)點(diǎn),每個(gè)從節(jié)點(diǎn)要知道主節(jié)點(diǎn)的地址。采用雙機(jī)備份后主節(jié)點(diǎn)掛掉以后從節(jié)點(diǎn)可以接替主機(jī)繼續(xù)服務(wù)。所以這種模式比單節(jié)點(diǎn)的高可用性要好很多。
主從同步的原理
在主從結(jié)構(gòu)中,主節(jié)點(diǎn)的操作記錄成為oplog(operation log),oplog存儲(chǔ)在一個(gè)系統(tǒng)數(shù)據(jù)庫local的集合oplog.$main中,這個(gè)集合的每個(gè)文檔都代表主節(jié)點(diǎn)上執(zhí)行的一個(gè)操作。
從服務(wù)器會(huì)定期從主服務(wù)器中獲取oplog記錄,然后在本機(jī)上執(zhí)行!對于存儲(chǔ)oplog的集合,MongoDB采用的是固定集合,也就是說隨著操作變化,新的操作會(huì)覆蓋舊的操作!
主從同步的其他設(shè)置項(xiàng)
- --only 從節(jié)點(diǎn)指定同步某個(gè)數(shù)據(jù)庫,默認(rèn)是同步全部數(shù)據(jù)庫
- --slavedelay 從節(jié)點(diǎn)設(shè)置主數(shù)據(jù)庫同步數(shù)據(jù)的延遲(單位是秒)
- --fastsync 從節(jié)點(diǎn)以主數(shù)據(jù)庫的節(jié)點(diǎn)快照為節(jié)點(diǎn)啟動(dòng)從數(shù)據(jù)庫
- --autoresync 從節(jié)點(diǎn)如果不同步則重新同步數(shù)據(jù)庫(即選擇當(dāng)通過熱添加了一臺(tái)從服務(wù)器之后,從服務(wù)器選擇是否更新主服務(wù)器之間的數(shù)據(jù))
- --oplogSize 主節(jié)點(diǎn)設(shè)置oplog的大小(主節(jié)點(diǎn)操作記錄存儲(chǔ)到local的oplog中)
配置主從同步的注意點(diǎn)
1 在數(shù)據(jù)庫集群中要明確的知道誰是主服務(wù)器,主服務(wù)器只有一臺(tái)
2 從服務(wù)器要知道自己的數(shù)據(jù)源也就是對應(yīng)的主服務(wù)器是誰
3 --master用來確定主服務(wù)器,--slave 和 --source 來控制從服務(wù)器
環(huán)境
系統(tǒng) IP 配置
CentOS 7.6 192.168.121.164 mongodb主庫
CentOS 7.6 192.168.121.133 mongodb從庫
主從配置
主庫的配置(直接復(fù)制執(zhí)行)
cat > /opt/mongodb_app/mongo_27017/conf/mongodb.conf << EOF
systemLog:
destination: file
logAppend: true
path: /opt/mongodb_app/mongo_27017/logs/mongodb.log
storage:
journal:
enabled: true
dbPath: /opt/mongodb_app/data/mongo_27017
directoryPerDB: true
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
pidFilePath: /opt/mongodb_app/mongo_27017/pid/mongod.pid
net:
port: 27017
bindIp: 127.0.0.1,192.168.121.164
EOF
使用--master參數(shù)啟動(dòng)主庫
/opt/mongodb_app/mongodb/bin/mongod -f /opt/mongodb_app/mongo_27017/conf/mongodb.conf --master

從庫的配置(直接復(fù)制執(zhí)行)
cat > /opt/mongodb_app/mongo_27017/conf/mongodb.conf << EOF
systemLog:
destination: file
logAppend: true
path: /opt/mongodb_app/mongo_27017/logs/mongodb.log
storage:
journal:
enabled: true
dbPath: /opt/mongodb_app/data/mongo_27017
directoryPerDB: true
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
pidFilePath: /opt/mongodb_app/mongo_27017/pid/mongod.pid
net:
port: 27017
bindIp: 127.0.0.1,192.168.121.133
EOF使用--slave --source 192.168.121.164:27017參數(shù)啟動(dòng)從庫

然后進(jìn)去查看數(shù)據(jù)情況(那個(gè)新建會(huì)話是主庫)

測試主從情況
db.inventory.insertMany( [
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" },
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
]);
兩邊數(shù)據(jù)是沒有問題的,至此mongodb的主從同步就完成了

我在寫這個(gè)文章的時(shí)候也有參考一些文檔,如有侵權(quán)請告知
到此這篇關(guān)于mongodb主從同步配置的文章就介紹到這了,更多相關(guān)mongodb主從同步配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mongodb實(shí)現(xiàn)數(shù)組對象求和方法實(shí)例
這篇文章主要給大家介紹了關(guān)于mongodb實(shí)現(xiàn)數(shù)組對象求和的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
1億條記錄的MongoDB數(shù)據(jù)庫隨機(jī)查詢性能測試
這篇文章主要為大家分享下1億條記錄的MongoDB數(shù)據(jù)庫隨機(jī)查詢性能測試結(jié)果,需要的朋友可以參考下2013-12-12
MongoDB安裝到windows服務(wù)的方法及遇到問題的完美解決方案
這篇文章主要介紹了MongoDB安裝到windows服務(wù)的方法及遇到問題的完美解決方案,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
MongoDB學(xué)習(xí)筆記—Linux下搭建MongoDB環(huán)境
本篇文章主要介紹了Linux下搭建MongoDB環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
關(guān)于MongoDB謹(jǐn)防索引seek的效率問題詳析
這篇文章主要給大家介紹了關(guān)于MongoDB謹(jǐn)防索引seek的效率問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
MongoDB數(shù)據(jù)庫兩階段提交實(shí)現(xiàn)事務(wù)的方法詳解
這篇文章主要介紹了MongoDB數(shù)據(jù)庫兩階段提交實(shí)現(xiàn)事務(wù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了MongoDB數(shù)據(jù)庫事務(wù)提交、回滾、撤銷等操作的原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-08-08
Mongodb?刪除文檔Delete與Remove的區(qū)別解析
這篇文章主要介紹了Mongodb?刪除文檔Delete與Remove的區(qū)別,要從集合中刪除所有文檔,請將空過濾器文檔傳遞{}給該?db.collection.deleteMany()方法,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
MongoDB數(shù)據(jù)庫文檔操作方法(必看篇)
下面小編就為大家?guī)硪黄狹ongoDB數(shù)據(jù)庫文檔操作方法(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
MongoDB快速入門筆記(六)之MongoDB刪除文檔操作
這篇文章主要介紹了MongoDB快速入門筆記(六)之MongoDB刪除文檔操作 的相關(guān)資料,需要的朋友可以參考下2016-06-06

