Linux下Mongodb數據庫主從復制配置
Mongodb的三種集群搭建的方式:
Master-Slaver:主從[目前被副本集取代]。
Replica Set:副本集。
Sharding:切片。
Mongodb單實例缺點:
適合簡易開發時使用,生產使用不行,因為單節點掛掉整個數據業務全掛。
主從復制:
MongoDB常用的復制方式,也是一個簡單的數據庫同步備份的集群技術,這種方式很靈活。可用于備份,故障恢復等等。
最基本的設置方式是建立一個主節點和一個/多個從節點,當主節點掛掉了后從節點可以接替主機繼續服務。
主從復制缺點[見文章結尾]
原理:
主從結構中,主節點的操作記錄oplog[operation log]。
oplog存儲在一個系統數據庫local的集合oplog.$main中,這個集合的每個文檔都代表主節點上執行的一個操作。
從服務器會定期從主服務器中獲取oplog記錄,然后在本機上執行。
對于存儲oplog的集合,MongoDB采用的是固定集合,隨著操作過多,新的操作會覆蓋舊的操作。
準備:
192.168.102.111 master
192.168.102.112 slave
關于mongodb的安裝詳見:
第四篇:linux系統中mongodb的配置
提示:
建議兩臺機器都關閉防火墻
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
#主服務器
master=true
#同步復制的日志大小設置,單位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
#主數據庫端口
source=192.168.102.111:27017
#從服務器
slave=true
#設置從庫同步主庫的延遲時間,秒
slavedelay=10
#主從庫數據不一致時,自動同步
autoresync=true

3、開啟master的mongod服務
bin/mongod --config ~/mongodb3.0/etc/mongodb.conf

開啟mongo客戶端
bin/mongo 192.168.102.111

4、 開啟slave的mongod服務
bin/mongod --config ~/mongodb3.0/etc/mongodb.conf

開啟mongo客戶端
bin/mongo 192.168.102.112

5、 測試數據同步
在master中新建demo庫插入測試數據
> 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