MongoDB學習筆記——Master/Slave主從複製

來源:互聯網
上載者:User

標籤:服務   ack   false   缺點   mongo   users   儲存   delay   記錄   

Master/Slave主從複製

主從複製MongoDB中比較常用的一種方式,如果要實現主從複製至少應該有兩個MongoDB執行個體,一個作為主節點負責用戶端請求,另一個作為從節點負責從主節點映射資料,提供資料備份,用戶端讀取等,推薦一主多從模式

MongoDB主從複製的實現方式:

  • 主節點的操作會被記錄為oplog,儲存在系統資料庫local的集合oplog.$main中,這個集合中的每個文檔都代表主節點的一個操作(不包括查詢)
  • 從節點定期從主伺服器擷取oplog資料,並在本機進行執行
  • oplog使用的是固定集合,隨著操作的逐漸增加,新的文檔會逐漸覆蓋舊的文檔

MongoDB使用注意點或缺點:

  • 每個從節點必須知曉其對應的主節點地址
  • 只允許主節點進行資料更新操作
  • 主節點宕機服務不可用
  • 3.2版本以後已經移除

Mongodb主從複製配置項詳解:

  • master:預設為false,當設定為true,則配置當前執行個體作為主節點。
  • slave:預設為false,當設定為true,則配置當前執行個體作為從節點。
  • source:預設為空白,用於從節點,指定從節點的複製來源(主節點的IP+連接埠),格式為:<host><:port>
  • only:預設為空白,用於從節點,主動複製預設複製主節點上所有的資料庫,通過設定此項指定需要複製的資料庫名稱
  • slavedelay:設定從庫同步主庫的延遲時間,用於從設定,預設為0,單位秒。
  • autoresync:預設為false,用於從設定。是否自動重新同步。設定為true,如果落後主超過10秒,會強制從自動重新同步。如果oplogSize太小,此設定可能有問題。如果OPLOG大小不足以儲存主的變化狀態和從的狀態變化之間的差異,這種情況下強制重新同步是不必要的。當設定autoresync選項設定為false,10分鐘內從不會進行大於1次的自動重新同步。

主從配置執行個體(一主一從)

主節點 master.conf

dbpath=D:\mongodb\zhucong\master\data

logpath=D:\mongodb\zhucong\master\logs\mongodb.log

port=27017

bind_ip=127.0.0.1

master=true

從節點配置

dbpath=D:\mongodb\zhucong\slave\data

logpath=D:\mongodb\zhucong\slave\logs\mongodb.log

port=27018

bind_ip=127.0.0.1

master=true

slave=true

source=127.0.0.1:27017

分別啟動兩個MongoDB執行個體

mongod --config D:\mongodb\zhucong\master\master.conf

mongod --config D:\mongodb\zhucong\slave\slave.conf

使用 Robomongo 用戶端分別串連上兩個MongoDB執行個體

在主庫上建立資料庫 masterslavetest 並建立一些測試資料

use masterslavetest

for (i = 5000; i < 100000; i++) {

db.users.insert({

"i": i,

"userName": "user" + i,

"age": Math.floor(Math.random() * 120),

"created": new Date(),

total: Math.floor(Math.random() * 100) * i

})

}

在兩個執行個體上分別執行以下命令可以看到在兩個資料庫上的資料保持一致,這時在主要資料庫上執行CRUD等操作時,從庫資料依然與主庫一致

db.users.find({})

兩條指令

db.printReplicationInfo(): //查看主節點的資訊

db.printSlaveReplicationInfo(): //查看從節點的資訊

MongoDB學習筆記——Master/Slave主從複製

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.