亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: MongoDB 生態(tài) – 官方命令行工具 [打印本頁]

作者: lyhabc    時(shí)間: 2016-11-30 21:00
標(biāo)題: MongoDB 生態(tài) – 官方命令行工具
工欲善其事,必先利其器,我們在使用數(shù)據(jù)庫時(shí),通常需要各種工具的支持來提高效率;很多新用戶在剛接觸 MongoDB 時(shí),遇到的問題是『不知道有哪些現(xiàn)成的工具可以使用』,本系列文章將主要介紹 MongoDB 生態(tài)在工具、driver、可視化管理等方面的支持情況。

本文主要介紹 MongoDB 官方的命令行工具

Mongo shell

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

show dbs / show tables / show users …
db.stats() 查看 db 的元數(shù)據(jù)信息
db.colleciont.stats() 查看集合的元數(shù)據(jù)信息
db.serverStatus() 查看數(shù)據(jù)庫狀態(tài)信息
rs.conf() 查看復(fù)制集的配置信息
rs.status() 查看復(fù)制集的狀態(tài)信息
rs.reconfig() 更改復(fù)制集的配置
db.printSlaveReplicationInfo() 查看主備同步延時(shí)
db.runCommand() 執(zhí)行命令

值得一提的是,Mongo shell 還能直接執(zhí)行js 腳本,對于單個(gè)語句沒法完成的操作,可以寫個(gè)簡單的 js 腳本,然后通過 mongo shell 來調(diào)用,這個(gè)功能對于日常的管理、分析等非常方便。

mongo --host localhost:27017 do_something.js
mongo shell 還支持命令歷史、命令補(bǔ)全等非常貼心的功能,用起來跟linux bash 的體驗(yàn)差不多。

mongostat

mongostat 也是很常用的工具,能查看MongoDB 實(shí)時(shí)的增刪改查操作的 pqs、以及內(nèi)存使用、網(wǎng)絡(luò)吞吐的信息。

$mongostat --host localhost:27017
insert query update delete getmore command % dirty % used flushes vsize  res qr|qw ar|aw netIn netOut conn                      time
  7803 93665  15601   7803       0 15604|0     6.1   79.7       0  1.8G 1.1G   0|0  14|2   17m    31m    0 2016-11-29T16:42:00+08:00
  7921 95062  15842   7922       0 15842|0     6.4   80.0       0  1.8G 1.1G   7|0  10|1   17m    32m    0 2016-11-29T16:42:01+08:00
  7996 95816  15985   7995       0 15978|0     6.5   79.6       0  1.8G 1.1G   2|0  17|1   17m    29m    0 2016-11-29T16:42:02+08:00
  7995 96038  16001   7995       0 16009|0     7.3   84.7       0  1.8G 1.1G   1|0  13|3   17m    30m    0 2016-11-29T16:42:03+08:00
  7836 93945  15672   7836       0 15665|0     7.3   84.5       0  1.8G 1.1G   0|0  13|1   17m    29m    0 2016-11-29T16:42:04+08:00
mongostat 也支持按復(fù)制集的方式去連接,可以同時(shí)查看復(fù)制集多個(gè)節(jié)點(diǎn)的實(shí)時(shí)性能數(shù)據(jù)。

如果使用的是MongoDB 3.2的最新版本,dirty持續(xù)超過20 或者 used 持續(xù)超過95,說明實(shí)例的訪問已經(jīng)超負(fù)荷了,可能 cpu 或 IO 資源已經(jīng)不夠用了,需要重點(diǎn)關(guān)注下。

mongotop

mongotop 能實(shí)時(shí)查看 MongoDB 在哪些集合上花的讀寫時(shí)間最多,能快速找出實(shí)例里的熱點(diǎn)集合。

$mongotop --host localhost:27017
         ns    total    read    write    2016-11-29T16:52:54+08:00
sb.sbtest30    673ms     0ms    673ms
sb.sbtest32    666ms     0ms    666ms
sb.sbtest56    665ms     0ms    665ms
sb.sbtest36    660ms     0ms    660ms
sb.sbtest38    651ms     0ms    651ms
sb.sbtest29    648ms     0ms    648ms
sb.sbtest21    647ms     0ms    647ms
sb.sbtest5    647ms     0ms    647ms
sb.sbtest53    647ms     0ms    647ms
sb.sbtest28    644ms     0ms    644ms
mongoimport/mongoexport

mongoexport 支持以 JSON 或者 CSV 的格式導(dǎo)出 MongoDB 存儲的數(shù)據(jù),然后使用 mongoimport 將其導(dǎo)入到其他的實(shí)例;mongoexport 支持導(dǎo)出單個(gè)集合的數(shù)據(jù),并能指定查詢條件來導(dǎo)出部分符合條件的數(shù)據(jù)。

mongoexport --db sales --collection contacts --query '{"field": 1}'
mongodump/mongorestore

mongodump 與 mongoexport 類似,可用于導(dǎo)出 MongoDB 的數(shù)據(jù),不同的時(shí),mongodump 導(dǎo)出的數(shù)據(jù)以 BSON 的格式存儲(BSON 格式數(shù)據(jù)可以通過 bsondump 工具來轉(zhuǎn)換為 json),存儲空間占用上比 JSON、CSV 更小,另外,mongodump 還支持對導(dǎo)出的數(shù)據(jù)進(jìn)行壓縮、歸檔,所以如果要對 MongoDB 的數(shù)據(jù)進(jìn)行定期備份,推薦使用 mongodump 或 直接進(jìn)行物理文件備份。

mongodump --archive=test.20150715.gz --gzip --db test
mongooplog

mongooplog 可以用于2個(gè)獨(dú)立的 MongoDB 實(shí)例間的數(shù)據(jù)同步,它會不斷的從源實(shí)例拉取 oplog(tailable cursor),然后重放到目標(biāo)實(shí)例。

mongooplog  --from mongodb0.example.net --host mongodb1.example.net
mongofiles

mongofiles 是 gridfs 的命令行客戶端,用于向 MongoDB 存儲、讀取文件,mongofiles 支持put、get、list等接口。

$mongofiles --host localhost:27017 put hello
$mongofiles --host localhost:27017 get hello
mongosniff

mongosniff 是 MongoDB 的抓包工具,直接下載二進(jìn)制包可能并不包含這個(gè)工具,需要下載源碼編譯出來,mongosniff 可以抓取某個(gè) MongoDB 實(shí)例的所有請求及應(yīng)答數(shù)據(jù),對于 MongoDB driver 的開發(fā)者非常有幫助,也可以用于一些網(wǎng)絡(luò)問題的定位。

$sudo mongosniff --source NET bond0 27017 | head -n 10
sniffing... 27017
10.1.2.3.3:31405  -->> 10.1.2.3.4:27017   172 bytes  id:165a40    1464896
    command: replSetHeartbeat database: admin metadata: { $replData: 1 } commandArgs: { replSetHeartbeat: "mongo-9554", configVersion: 23, from: "r101072137.sqa.zmf:9554", fromId: 0, term: 69 } inputDocs: [ ]
10.1.2.3.4:27017  <<--  10.1.2.3.3:31405   445 bytes  id:133027   1257511
    commandReply: { ok: 1.0, state: 2, v: 23, hbmsg: "", set: "mongo-9554", syncingTo: "r101072137.sqa.zmf:9554", term: 69, primaryId: 0, durableOpTime: { ts: Timestamp 1480088534000|1, t: 69 }, opTime: { ts: Timestamp 1480088534000|1, t: 69 } } metadata: { $replData: { term: 69, lastOpCommitted: { ts: Timestamp 1480088534000|1, t: 69 }, lastOpVisible: { ts: Timestamp 1479887534000|1, t: 68 }, configVersion: 23, replicaSetId: ObjectId('000000000000000000000000'), primaryIndex: 0, syncSourceIndex: 0 } } outputDocs: [ ]
mongoperf

mongoperf 的名字很容易誤導(dǎo)人,乍一看以為是 mongodb 的性能測試工具,實(shí)際上它是用來測試磁盤 IO 性能的工具。

echo "{nThreads:16,fileSizeMB:1000,r:true,w:true}" | mongoperf
new thread, total running : 1
read:1 write:1
2958 ops/sec 11 MB/sec
3022 ops/sec 11 MB/sec
3023 ops/sec 11 MB/sec
2832 ops/sec 11 MB/sec






歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2