天天看點

MongoDB 生态 - 官方指令行工具

工欲善其事,必先利其器,我們在使用資料庫時,通常需要各種工具的支援來提高效率;很多新使用者在剛接觸 mongodb 時,遇到的問題是『不知道有哪些現成的工具可以使用』,本系列文章将主要介紹 mongodb 生态在工具、driver、可視化管理等方面的支援情況。

本文主要介紹 mongodb 官方的指令行工具

mongodb 的指令行管理工具,也是 mongodb 最常用的工具,功能非常豐富,比如常用的

show dbs / show tables / show users ...

db.stats() 檢視 db 的中繼資料資訊

db.colleciont.stats() 檢視集合的中繼資料資訊

db.serverstatus() 檢視資料庫狀态資訊

rs.conf() 檢視複制集的配置資訊

rs.status() 檢視複制集的狀态資訊

rs.reconfig() 更改複制集的配置

db.printslavereplicationinfo() 檢視主備同步延時

db.runcommand() 執行指令

...

值得一提的是,mongo shell 還能直接執行js 腳本,對于單個語句沒法完成的操作,可以寫個簡單的 js 腳本,然後通過 mongo shell 來調用,這個功能對于日常的管理、分析等非常友善。

mongo shell 還支援指令曆史、指令補全等非常貼心的功能,用起來跟linux bash 的體驗差不多。

mongostat 也是很常用的工具,能檢視mongodb 實時的增删改查操作的 pqs、以及記憶體使用、網絡吞吐的資訊。

mongostat 也支援按複制集的方式去連接配接,可以同時檢視複制集多個節點的實時性能資料。

如果使用的是mongodb 3.2的最新版本,dirty持續超過20 或者 used 持續超過95,說明執行個體的通路已經超負荷了,可能 cpu 或 io 資源已經不夠用了,需要重點關注下。

mongotop 能實時檢視 mongodb 在哪些集合上花的讀寫時間最多,能快速找出執行個體裡的熱點集合。

mongoexport 支援以 json 或者 csv 的格式導出 mongodb 存儲的資料,然後使用 mongoimport 将其導入到其他的執行個體;mongoexport 支援導出單個集合的資料,并能指定查詢條件來導出部分符合條件的資料。

mongooplog 可以用于2個獨立的 mongodb 執行個體間的資料同步,它會不斷的從源執行個體拉取 oplog(tailable cursor),然後重放到目标執行個體。

mongofiles 是 gridfs 的指令行用戶端,用于向 mongodb 存儲、讀取檔案,mongofiles 支援put、get、list等接口。

mongosniff 是 mongodb 的抓包工具,直接下載下傳二進制包可能并不包含這個工具,需要下載下傳源碼編譯出來,mongosniff 可以抓取某個 mongodb 執行個體的所有請求及應答資料,對于 mongodb driver 的開發者非常有幫助,也可以用于一些網絡問題的定位。

mongoperf 的名字很容易誤導人,乍一看以為是 mongodb 的性能測試工具,實際上它是用來測試磁盤 io 性能的工具。

MongoDB 生态 - 官方指令行工具

<a href="/go/1/6?postion=1" target="_blank">雲資料庫 mongodb 版</a>

基于飛天分布式系統和高性能存儲,提供三節點副本集的高可用架構,容災切換,故障遷移完全透明化。并提供專業的資料庫線上擴容、備份復原、性能優化等解決方案。

<a href="/go/1/6?postion=1" target="_blank">了解更多</a>