linux配置usb主从_杂集:浅谈关于Mongodb数据库主从复制
Linux下Mongodb數(shù)據(jù)庫主從復(fù)制配置
Mongodb的三種集群搭建的方式:
Master-Slaver:主從[目前被副本集取代]。
Replica Set:副本集。
Sharding:切片。
Mongodb單實例缺點:
適合簡易開發(fā)時使用,生產(chǎn)使用不行,因為單節(jié)點掛掉整個數(shù)據(jù)業(yè)務(wù)全掛。
主從復(fù)制:
MongoDB常用的復(fù)制方式,也是一個簡單的數(shù)據(jù)庫同步備份的集群技術(shù),這種方式很靈活。可用于備份,故障恢復(fù)等等。
最基本的設(shè)置方式是建立一個主節(jié)點和一個/多個從節(jié)點,當(dāng)主節(jié)點掛掉了后從節(jié)點可以接替主機繼續(xù)服務(wù)。
主從復(fù)制缺點[見文章結(jié)尾]
原理:
主從結(jié)構(gòu)中,主節(jié)點的操作記錄oplog[operation log]。
oplog存儲在一個系統(tǒng)數(shù)據(jù)庫local的集合oplog.$main中,這個集合的每個文檔都代表主節(jié)點上執(zhí)行的一個操作。
從服務(wù)器會定期從主服務(wù)器中獲取oplog記錄,然后在本機上執(zhí)行。
對于存儲oplog的集合,MongoDB采用的是固定集合,隨著操作過多,新的操作會覆蓋舊的操作。
準(zhǔn)備:
192.168.102.111 master
192.168.102.112 slave
關(guān)于mongodb的安裝詳見:
第四篇:linux系統(tǒng)中mongodb的配置
提示:
建議兩臺機器都關(guān)閉防火墻
1、 修改master配置文件
192.168.102.111 master
vi ~/mongodb3.0/etc/mongodb.conf
port=27017
bind_ip=192.168.102.111
dbpath=/home/odysee/mongodb3.0/data/db/
logpath=/home/odysee/mongodb3.0/logs/mongodb.log
logappend=true
journal=true
fork=true
#主服務(wù)器
master=true
#同步復(fù)制的日志大小設(shè)置,單位MB
oplogSize=2048
2、修改slave配置文件
192.168.102.112 slave
vi ~/mongodb3.0/etc/mongodb.conf
port=27017
bind_ip=192.168.102.112
dbpath=/home/odysee/mongodb3.0/data/db/
logpath=/home/odysee/mongodb3.0/logs/mongodb.log
logappend=true
journal=true
fork=true
#主數(shù)據(jù)庫端口
source=192.168.102.111:27017
#從服務(wù)器
slave=true
#設(shè)置從庫同步主庫的延遲時間,秒
slavedelay=10
#主從庫數(shù)據(jù)不一致時,自動同步
autoresync=true
3、開啟master的mongod服務(wù)
bin/mongod --config ~/mongodb3.0/etc/mongodb.conf
開啟mongo客戶端
bin/mongo 192.168.102.111
4、 開啟slave的mongod服務(wù)
bin/mongod --config ~/mongodb3.0/etc/mongodb.conf
開啟mongo客戶端
bin/mongo 192.168.102.112
5、 測試數(shù)據(jù)同步
在master中新建demo庫插入測試數(shù)據(jù)
> use demo;
switched to db demo
> db.demo.insert({"name":"odysee1"})
WriteResult({ "nInserted" : 1 })
> db.demo.insert({"name":"odysee2"})
WriteResult({ "nInserted" : 1 })
> db.demo.insert({"name":"odysee3"})
WriteResult({ "nInserted" : 1 })
> db.demo.find()
{ "_id" : ObjectId("5c37b2780ecf620bd11f14c8"), "name" : "odysee1" }
{ "_id" : ObjectId("5c37b27b0ecf620bd11f14c9"), "name" : "odysee2" }
{ "_id" : ObjectId("5c37b27e0ecf620bd11f14ca"), "name" : "odysee3" }
在slave中查看
Error: listDatabases failed:{ "note" : "from execCommand
總結(jié)
以上是生活随笔為你收集整理的linux配置usb主从_杂集:浅谈关于Mongodb数据库主从复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。