mongodb主從同步配置實戰(zhàn)詳細教程(建議收藏)
MongoDB主從同步
主從同步是MongoDB最常用的同步方式,也是一個簡單的數(shù)據(jù)庫同步備份的集群技術(shù),這種方式很靈活,可用于備份,故障恢復(fù),讀擴展等。
最基本的設(shè)置方式就是建立一個主節(jié)點和一個或多個從節(jié)點,每個從節(jié)點要知道主節(jié)點的地址。采用雙機備份后主節(jié)點掛掉以后從節(jié)點可以接替主機繼續(xù)服務(wù)。所以這種模式比單節(jié)點的高可用性要好很多。
主從同步的原理
在主從結(jié)構(gòu)中,主節(jié)點的操作記錄成為oplog(operation log),oplog存儲在一個系統(tǒng)數(shù)據(jù)庫local的集合oplog.$main中,這個集合的每個文檔都代表主節(jié)點上執(zhí)行的一個操作。
從服務(wù)器會定期從主服務(wù)器中獲取oplog記錄,然后在本機上執(zhí)行!對于存儲oplog的集合,MongoDB采用的是固定集合,也就是說隨著操作變化,新的操作會覆蓋舊的操作!
主從同步的其他設(shè)置項
- --only 從節(jié)點指定同步某個數(shù)據(jù)庫,默認是同步全部數(shù)據(jù)庫
- --slavedelay 從節(jié)點設(shè)置主數(shù)據(jù)庫同步數(shù)據(jù)的延遲(單位是秒)
- --fastsync 從節(jié)點以主數(shù)據(jù)庫的節(jié)點快照為節(jié)點啟動從數(shù)據(jù)庫
- --autoresync 從節(jié)點如果不同步則重新同步數(shù)據(jù)庫(即選擇當通過熱添加了一臺從服務(wù)器之后,從服務(wù)器選擇是否更新主服務(wù)器之間的數(shù)據(jù))
- --oplogSize 主節(jié)點設(shè)置oplog的大小(主節(jié)點操作記錄存儲到local的oplog中)
配置主從同步的注意點
1 在數(shù)據(jù)庫集群中要明確的知道誰是主服務(wù)器,主服務(wù)器只有一臺
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ù)啟動主庫
/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ù)啟動從庫
然后進去查看數(shù)據(jù)情況(那個新建會話是主庫)
測試主從情況
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的主從同步就完成了
我在寫這個文章的時候也有參考一些文檔,如有侵權(quán)請告知
到此這篇關(guān)于mongodb主從同步配置的文章就介紹到這了,更多相關(guān)mongodb主從同步配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB學(xué)習(xí)筆記之GridFS使用介紹
這篇文章主要介紹了MongoDB學(xué)習(xí)筆記之GridFS使用介紹,本文介紹了GridFS的作用、GridFS的一些使用方法、GridFS實現(xiàn)原理及注意事項等,需要的朋友可以參考下2015-07-07一文帶你深入掌握MongoDB查詢分析的關(guān)鍵技巧
MongoDB 是一款靈活且可擴展的NoSQL數(shù)據(jù)庫,為了提高其性能,我們可以采取一些優(yōu)化技巧,這篇文章主要給大家介紹了關(guān)于MongoDB查詢分析關(guān)鍵技巧的相關(guān)資料,需要的朋友可以參考下2024-06-06MongoDB通過查詢與游標徹底玩轉(zhuǎn)分布式文件存儲
MongoDB最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標,徹底玩轉(zhuǎn)分布式文件存儲,需要的朋友可以參考下2023-01-01MongoDB學(xué)習(xí)筆記之分組(group)使用示例
這篇文章主要介紹了MongoDB學(xué)習(xí)筆記之分組(group)使用示例,本文直接給出一組測試數(shù)據(jù),然后練習(xí)分組的基本使用,需要的朋友可以參考下2015-07-07Linux系統(tǒng)下安裝MongoDB的詳細方法圖文教程
這篇文章主要介紹了Linux系統(tǒng)下安裝MongoDB的詳細方法圖文教程,需要的朋友可以參考下2023-06-06