Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MongoDB London 2011 - MongoDB Command Line Tools
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Russell Smith
April 20, 2012
Technology
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MongoDB London 2011 - MongoDB Command Line Tools
Russell Smith
April 20, 2012
More Decks by Russell Smith
See All by Russell Smith
Ops Skills and Tools for Beginners [MongoDB World 2014]
ukd1
0
150
3 Infrastructure + workflow lessons from an early stage startup
ukd1
0
140
Bitcoin Ops & Security Primer
ukd1
1
190
Gearman & Kohana
ukd1
2
1k
Geo & capped collections with MongoDB
ukd1
1
170
Cassandra London UG July 2011 - Riak vs Cassandra
ukd1
1
340
MongoDB - Map Reduce
ukd1
2
270
MongoDB London UG, April 2011 - MongoDB Introduction
ukd1
1
140
Seedhack 2011 - Introducing MongoDB
ukd1
1
160
Other Decks in Technology
See All in Technology
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
170
Steerable Visual Representations
sansantech
PRO
0
300
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
160
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
170
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
240
freeeにおけるSoftware Factory
freee
PRO
0
380
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
330
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
140
Browser Spec: Testing Hotwire with Ruby
takahashim
1
170
僕のハーネスを紹介します
watany
5
1.5k
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
360
撮るだけでは終わらない。ソニーが挑むB2Bカメラソリューション開発
sony
0
100
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Amusing Abliteration
ianozsvald
1
350
Testing 201, or: Great Expectations
jmmastey
46
8.3k
We Are The Robots
honzajavorek
0
400
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Deep Space Network (abreviated)
tonyrice
0
380
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Transcript
mongo* Just what do those commands do? By Russell Smith
Friday, 20 April 12
/usr/bin/whoami • Russell Smith • Consultant for UKD1 Limited •
I Specialise in helping companies going through rapid growth; • Code, architecture, infrastructure, devops, sysops, capacity planning, etc • <3 MongoDB, Neo4j, MySQL, Riak, Gearman, Kohana, PHP, Debian, Puppet, etc... Friday, 20 April 12
Huh? • MongoDB ships with a variety of CLI tools
• Some popular; mongodump, mongorestore, mongostat, mongo • Some less so; mongosniff, mongoexport, mongoimport, bsondump, etc Friday, 20 April 12
Core Friday, 20 April 12
mongo • Probably the most commonly used • ‘Hidden’ gems;
• ~/.mongorc.js - will be executed by default • --eval “some js” - evaluates Javascript and exits Friday, 20 April 12
mongo (cont.) ~ mongo test --eval "printjson(db.getCollectionNames())" MongoDB shell version:
2.1.0-pre- connecting to: test [ "fs.chunks", "fs.files", "system.indexes", "system.profile", "test" ] ~ mongo test --quiet --eval "printjson(db.getCollectionNames())" [ "fs.chunks", "fs.files", "system.indexes", "system.profile", "test" ] Friday, 20 April 12
~/.mongorc.js x = db.queue.count({state:4}); if (x > 0) { print('WARNING:
' + x + ' hung jobs'); } Friday, 20 April 12
~/.mongorc.js ~ mongo MongoDB shell version: 2.1.0-pre- connecting to: test
WARNING: 2 hung jobs > Friday, 20 April 12
mongod • The server itself • Useful: • --fastsync -
allows (much) faster starting of a replset member by using a (recent) snapshot of a peer • --keyFile - replset / sharding authentication file Friday, 20 April 12
mongos • Sits in front of your shard servers and
directs queries • --keyFile Friday, 20 April 12
Common Friday, 20 April 12
mongodump • Used to take backups • Common options: •
--oplog • -d • -c Friday, 20 April 12
mongodump (cont.) ~ mongodump -d test -c queue -q "{state:4}"
connected to: 127.0.0.1 DATABASE: test to dump/test test.queue to dump/test/queue.bson 2 objects Friday, 20 April 12
mongorestore • Restores backups taken with mongodump • Interesting options;
• --filter • --oplogReplay • Possible performance issues with custom (non ObjectId) _id Friday, 20 April 12
mongorestore (cont.) mongorestore -d test -c queue --filter "{state:4}" dump/test/queue.bson
connected to: 127.0.0.1 Mon Sep 19 07:34:03 dump/test/queue.bson Mon Sep 19 07:34:03 going into namespace [test.queue] 764 objects found 2 objects processed Friday, 20 April 12
mongostat • Produces periodically updated stats • Useful in watching
server load & spotting general performance issues Friday, 20 April 12
Cursor paging Common operations fsync flushes Total data size locked
active clients queues Friday, 20 April 12
mongostat (cont’d) • Watch for; • faults (page faults) •
idx miss (index btree page misses) • locked (percentage of time globally locked) • repl (it should normally be M or SEC) Friday, 20 April 12
Others Friday, 20 April 12
mongoexport • Useful to export data for use with another
database or program • You may specify down to the field level using a filter if needed • Can export as; • JSON (default) • CSV Friday, 20 April 12
mongoimport • Imports data in to mongodb • Currently supports
importing; • JSON • CSV • TSV Friday, 20 April 12
mongoimport (cont’d) • Useful options include; • --upsert - allows
updating objects that exist already (see --upsertFields) • --headerline - if your CSV / TSV contains headers • -f / --fields - specify field names Friday, 20 April 12
bsondump • Convert bson -> json bsondump test.bson --type json
{ "_id" : ObjectId( "4e72f51414345f302b0eea2e" ), "test" : 1 } 1 objects found Friday, 20 April 12
bsondump (cont.) • Debug info: bsondump test.bson --type debug ---
new object --- size : 36 _id type: 7 size: 17 test type: 1 size: 14 etc Friday, 20 April 12
mongofiles ~ mongofiles put test.txt connected to: 127.0.0.1 added file:
{ _id: ObjectId('4e761b07c21062d06b349819'), filename: "test.txt", chunkSize: 262144, uploadDate: new Date(1316363015625), md5: "d41d8cd98f00b204e9800998ecf8427e", length: 12256 } done! Friday, 20 April 12
mongofiles (cont.) ~ mongofiles list connected to: 127.0.0.1 test.txt 12256
Friday, 20 April 12
mongotop • New in 1.9 • Collection level load stats
Friday, 20 April 12
mongosniff • Used for sniffing the traffic between client /
server • Can forward traffic • Only really useful for debugging... Friday, 20 April 12
Friday, 20 April 12
mongo-perf • Does not ship with mongodb See : https://github.com/mongodb/mongo-perf
• I can’t compile it, but it probably works Friday, 20 April 12
Useful third party tools Friday, 20 April 12
tungsten replicator • http://code.google.com/p/tungsten-replicator/ • http://code.google.com/p/tungsten-replicator/wiki/ mysql> create table foo(id
int primary key, msg varchar(35)); Query OK, 0 rows affected (0.05 sec) mysql> insert into foo values(1, 'hello from MySQL!'); Query OK, 1 row affected (0.00 sec) > db.foo.find() { "_id" : ObjectId("4dc77bacad9092bd1aef046d"), "id" : "1", "data" : "hello from MySQL!" } Friday, 20 April 12
automongobackup • A port of the popular AutoMySQLBackup • Rotates
& compresses backups • https://github.com/micahwedemeyer/automongobackup Friday, 20 April 12
mongolog • Full query logging • Uses mongosniff • Will
be on github soon Friday, 20 April 12
Other interesting projects • Eliots Munin plugins : https://github.com/erh/mongo-munin •
gridfs-fuse : https://github.com/mikejs/gridfs-fuse Friday, 20 April 12
Further reading • Tungsten with Mongo details http://scale-out-blog.blogspot.com/2011/05/introducing-mysql-to-mongodb.html • Javascript
shell API http://api.mongodb.org/js/current/ • Admin UI’s http://www.mongodb.org/display/DOCS/Admin+UIs • Hacking the shell http://bit.ly/r2vghH Friday, 20 April 12
Questions? Friday, 20 April 12