MongoDB實戰第二版筆記(14)第十三章筆記(系列終)

在這裏插入圖片描述

  1、MongoDB三種不同類型的集羣:

  • 單節點:不需要可靠性和數據集比較小的選擇
  • 可複製集:最低是3個節點(2個數據存儲和1個裁判節點)
  • 分片集羣。最小配置有2個片,只有一個片會增加額外壓力而且無法利用分片優勢,每個分片應是可複製集,並且有3個配置服務器確保沒有單點故障,兩個mongos路由進程保證高可用性。當想要捆綁廉價服務器提升容量時使用分片集羣

  2、mongoDB服務器的組件必須運行在採取小端存儲的機器上。

  3、磁盤性能重要的原因

  • 高寫入工作負載。當數據寫入MongoDB時,服務器必須把數據寫入磁盤,對於高併發寫入的APP和慢速磁盤,寫入操作會影響整個系統的性能。
  • 快速磁盤允許更快的服務器預熱。任意時候重啓服務器,都需要把數據集加載到內存裏。每個連續的MongoDB讀或寫都會加載新的虛擬內存到內存裏,直到物理內存佔滿。快速磁盤會加速過程,顯著提高MongoDB的性能
  • 快速磁盤會調整應用程序必須的工作集大小,達到內存的比率(使用SSD磁盤,可能需要更小的內存或更大的容量)。

  4、正式部署是使用RAID陣列。

  5、如果要啓用日誌運行MongoDB服務器,記住下面要點:

  • 日誌需要額外的寫操作
  • 解決該問題的一個方法,獨立分配日誌磁盤,創建符號鏈接,指定日誌文件路徑。分區容量儘量大。達到120GB就夠了。
  • 日誌無法擔保不丟失寫入數據,它只保證MongoDB恢復時的一致性狀態。

日誌每隔100ms會同步日誌到磁盤,所以意外關閉可能會丟失100ms中的寫入數據。

  6、關於日誌的幾點:

  • 是監控的第一個級別
  • 用-logpath指定日誌路徑
  • mongod啓動時用-vvvvvv(v)參數越多輸出信息越詳細
  • 用-logappend啓動mongod,這會追加日誌到現有日誌,而不是默認模式,使用時間戳滾動文件

  7、診斷命令

  • 全局服務器統計信息:db.serverStatus()
  • 統計當前運行的操作:db.currentOp()
  • 包含空閒的操作:db.currentOp(true)
  • 每個數據庫的計數器和活動統計:db.runCommand({top:1})
  • 內存和磁盤的使用情況統計:db.stats()

  8、診斷工具

  • mongostat,全局系統統計信息(定時輪訓並顯示統計從每秒插入的數量到內存的使用量,再到B-樹頁缺失的頻率)
  • mongotop,全局操作統計信息
  • mongosniff(高級),監控MongoDB網絡流量
  • bsondump,以JSON格式顯示BSON文件

  9、備份MongoDB數據庫的通用規則

  • 使用mongodump和mongorestore
  • 複製原始數據文件
  • 使用MMS備份

  10、mongodump用於把數據庫內容寫爲BSON文件。mongorestore用於讀取這些文件並恢復。它們可以用於備份實時運行的數據庫(無需鎖住或關閉數據庫),或把它們指向到一個數據文件的集合上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章