mongodb主從同步配置實戰(zhàn)詳細教程(建議收藏)
MongoDB主從同步
主從同步是MongoDB最常用的同步方式,也是一個簡單的數據庫同步備份的集群技術,這種方式很靈活,可用于備份,故障恢復,讀擴展等。
最基本的設置方式就是建立一個主節(jié)點和一個或多個從節(jié)點,每個從節(jié)點要知道主節(jié)點的地址。采用雙機備份后主節(jié)點掛掉以后從節(jié)點可以接替主機繼續(xù)服務。所以這種模式比單節(jié)點的高可用性要好很多。
主從同步的原理
在主從結構中,主節(jié)點的操作記錄成為oplog(operation log),oplog存儲在一個系統(tǒng)數據庫local的集合oplog.$main中,這個集合的每個文檔都代表主節(jié)點上執(zhí)行的一個操作。
從服務器會定期從主服務器中獲取oplog記錄,然后在本機上執(zhí)行!對于存儲oplog的集合,MongoDB采用的是固定集合,也就是說隨著操作變化,新的操作會覆蓋舊的操作!
主從同步的其他設置項
- --only 從節(jié)點指定同步某個數據庫,默認是同步全部數據庫
- --slavedelay 從節(jié)點設置主數據庫同步數據的延遲(單位是秒)
- --fastsync 從節(jié)點以主數據庫的節(jié)點快照為節(jié)點啟動從數據庫
- --autoresync 從節(jié)點如果不同步則重新同步數據庫(即選擇當通過熱添加了一臺從服務器之后,從服務器選擇是否更新主服務器之間的數據)
- --oplogSize 主節(jié)點設置oplog的大小(主節(jié)點操作記錄存儲到local的oplog中)
配置主從同步的注意點
1 在數據庫集群中要明確的知道誰是主服務器,主服務器只有一臺
2 從服務器要知道自己的數據源也就是對應的主服務器是誰
3 --master用來確定主服務器,--slave 和 --source 來控制從服務器
環(huán)境
系統(tǒng) IP 配置
CentOS 7.6 192.168.121.164 mongodb主庫
CentOS 7.6 192.168.121.133 mongodb從庫
主從配置
主庫的配置(直接復制執(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參數啟動主庫
/opt/mongodb_app/mongodb/bin/mongod -f /opt/mongodb_app/mongo_27017/conf/mongodb.conf --master
從庫的配置(直接復制執(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參數啟動從庫
然后進去查看數據情況(那個新建會話是主庫)
測試主從情況
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" } ]);
兩邊數據是沒有問題的,至此mongodb的主從同步就完成了
我在寫這個文章的時候也有參考一些文檔,如有侵權請告知
到此這篇關于mongodb主從同步配置的文章就介紹到這了,更多相關mongodb主從同步配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux系統(tǒng)下安裝MongoDB的詳細方法圖文教程
這篇文章主要介紹了Linux系統(tǒng)下安裝MongoDB的詳細方法圖文教程,需要的朋友可以參考下2023-06-06