337
Comment:
|
3243
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
* | * mongobackup + restore scripts [[MongoDb/MongoBackupRestore]] * https://hub.docker.com/r/mongoclient/mongoclient/ * $ docker run -it mongoclient/mongoclient * $ docker run -it mongo mongoexport --version == Login == * $ mongo 10.32.2.4 --authenticationDatabase admin --username test --password mypass * > db test * > show dbs * > use 9spokes * > db.getCollection("") * > show collections * db.getCollection("config_data").find() == Backup/Export == * Use mongodump mongorestore for full bson that handles all mongo types. * To get json formatted data {{{ u=<user> p=<password> d=<mydb> h-<host ip> mongo --quiet "mongodb://$u:$p@$h/$d?authSource=admin" --eval "db.getCollectionNames().join('\n')" | \ grep -v system.indexes | \ xargs -L 1 -I {} mongoexport -u $u -p $p -h $h --db $d --authenticationDatabase admin --jsonArray --pretty --collection {} --out {}.json }}} == Basic mongo find and update examples == * > db.getCollection('widget_data').find({"obj_type":"summary", "obj_category":"Widget", "obj_origin":"sample"}).pretty() * patch/update {{{ db.widget_data.update( {"obj_type":"summary", "obj_category":"Widget", "obj_origin":"sample"}, {$set: { "data_sets" : [ { "rows" : [ { "col_1" : "Total", "col_2" : "10" }, { "col_1" : "Limit", "col_2" : "20" }, { "col_1" : "Max", "col_2" : "50" } ] } ] }} ) }}} |
Line 13: | Line 68: |
=== Recover password === * stop the mongod service * edit /etc/mongod.conf {{{ :PRIMARY> use admin :PRIMARY> db.createUser({user:"root",pwd:"mongopwd",roles:[{role:"root",db:"admin"}]}); :PRIMARY> db.changeUserPassword("root","mongopwd") }}} {{{ mongo admin --host 192.168.70.13 -u root -p mongopassword --eval 'rs.initiate({_id: "local_sandbox-MongoDB", members: [{_id: 0, host: "192.168.70.11:27017"},{_id: 1, host: "192.168.70.12:27017"},{_id: 2, host: "192.168.70.13:27017"}]})' }}} === Slow / Long running queries === * * $ mongo 10.32.2.4 --authenticationDatabase admin --username test --password mypass * > db.currentOp() * > db.currentOp({"secs_running": {$gte: 3}}) * Count documents in <db> <collection> * use <db>; * db.<collection>.count() * DB locks * > db.serverStatus().globalLock * > db.serverStatus().locks * DB version , want > 3.2 wiretiger document level locking * > db.version() * DB memory usage should be less than ram * > db.serverStatus().mem * > db.serverStatus().wiredTiger.cache * Check number of connections * db.serverStatus().connections * Check indexs on a collection * db.<collection>.getIndexes() |
MongoDB nosql notes
mongobackup + restore scripts MongoDb/MongoBackupRestore
https://hub.docker.com/r/mongoclient/mongoclient/
- $ docker run -it mongoclient/mongoclient
- $ docker run -it mongo mongoexport --version
Login
- $ mongo 10.32.2.4 --authenticationDatabase admin --username test --password mypass
> db
- test
> show dbs
> use 9spokes
> db.getCollection("")
> show collections
- db.getCollection("config_data").find()
Backup/Export
- Use mongodump mongorestore for full bson that handles all mongo types.
To get json formatted data
u=<user> p=<password> d=<mydb> h-<host ip> mongo --quiet "mongodb://$u:$p@$h/$d?authSource=admin" --eval "db.getCollectionNames().join('\n')" | \ grep -v system.indexes | \ xargs -L 1 -I {} mongoexport -u $u -p $p -h $h --db $d --authenticationDatabase admin --jsonArray --pretty --collection {} --out {}.json
Basic mongo find and update examples
> db.getCollection('widget_data').find({"obj_type":"summary", "obj_category":"Widget", "obj_origin":"sample"}).pretty()
patch/update
db.widget_data.update( {"obj_type":"summary", "obj_category":"Widget", "obj_origin":"sample"}, {$set: { "data_sets" : [ { "rows" : [ { "col_1" : "Total", "col_2" : "10" }, { "col_1" : "Limit", "col_2" : "20" }, { "col_1" : "Max", "col_2" : "50" } ] } ] }} )
Replicaset
- View members
mongo admin --host $ip -u root -p $pass -eval "rs.status()"
- Check if current server is the write
mongo admin --host $ip -u root -p $pass --quiet --eval "db.isMaster()['ismaster']"
Recover password
- stop the mongod service
- edit /etc/mongod.conf
:PRIMARY> use admin :PRIMARY> db.createUser({user:"root",pwd:"mongopwd",roles:[{role:"root",db:"admin"}]}); :PRIMARY> db.changeUserPassword("root","mongopwd")
mongo admin --host 192.168.70.13 -u root -p mongopassword --eval 'rs.initiate({_id: "local_sandbox-MongoDB", members: [{_id: 0, host: "192.168.70.11:27017"},{_id: 1, host: "192.168.70.12:27017"},{_id: 2, host: "192.168.70.13:27017"}]})'
Slow / Long running queries
- * $ mongo 10.32.2.4 --authenticationDatabase admin --username test --password mypass
> db.currentOp()
> db.currentOp({"secs_running": {$gte: 3}})
Count documents in <db> <collection>
use <db>;
db.<collection>.count()
- DB locks
> db.serverStatus().globalLock
> db.serverStatus().locks
DB version , want > 3.2 wiretiger document level locking
> db.version()
- DB memory usage should be less than ram
> db.serverStatus().mem
> db.serverStatus().wiredTiger.cache
- Check number of connections
- db.serverStatus().connections
- Check indexs on a collection
db.<collection>.getIndexes()
...