mongoDB有一個主要特性就是複製,有多種複製形式,其中,主從複製是比較經常使用的一種。
mongodb
主從複製的工做原理:首先要有兩個或更多的服務器,其中一個是主節點,負責處理客戶端的請求,其餘的都是從節點,負責映射主節點的數據。主節點記錄在其上執行的全部操做,從節點按期輪詢主節點得到的這些操做,而後執行這些操做。因爲從節點和主節點執行了相同的操做,從節點就能保持與主節點的數據同步。shell
實戰講解一下mongodb的搭建和主從複製,由於只有一臺服務器,因此只能經過修改端口號實現mongodb的主從,而不是經過多臺服務器實現。其實原理是同樣的~,只是這樣作實際意義不大~
服務器
以前已經裝了一個版本的mongodb(2.6.11),既然如今mongodb已經更新到了3.0.6,那麼從庫就特地使用3.0.6,反正是測試用途,就無論那麼多了~ app
下載mongodb3.0.6執行文件包,並解壓,把二進制執行文件放在/usr/local/mongo3.0.6目錄spa
# mongod.conf #where to log logpath=/var/log/mongodb/mongod-27017.log logappend=true # fork and run in background fork=true port=27017 #dbpath=/var/lib/mongo dbpath=/data/mongodb/mongo-27017 # location of pidfile pidfilepath=/var/run/mongodb/mongod-27017.pid bind_ip=127.0.0.1,192.168.56.61 #noauth=true # Ignore query hints #nohints=true # Disable the HTTP interface (Defaults to localhost:27017). nohttpinterface = false rest = true master = true
# mongod.conf #where to log logpath=/var/log/mongodb/mongod-27018.log logappend=true # fork and run in background fork=true port=27018 #dbpath=/var/lib/mongo dbpath=/data/mongodb/mongo-27018 # location of pidfile pidfilepath=/var/run/mongodb/mongod-27018.pid # Listen to local interface only. Comment out to listen on all interfaces. bind_ip=127.0.0.1,192.168.56.61 #noauth=true # Ignore query hints #nohints=true # Disable the HTTP interface (Defaults to localhost:27018). nohttpinterface = false rest = true slave = true source = 127.0.0.1:27017
# 主庫啓動 /usr/local/mongo2.6.11/mongod -f /etc/mongod/mongod-27017.conf # 從庫啓動 /usr/local/mongo3.0.6/mongod -f /etc/mongod/mongod-27018.conf
不一樣版本的mongodb開始auth模式能夠經過下面的方法來實現rest
1. 先把全部主從mongodb設爲unauth模式code
2. 在master添加一個帳號,這樣slave也就自動同步了該帳號ip
3. 把全部主從mongodb開啓auth模式get