Ricerca…
Osservazioni
Se non ti opponi all'esecuzione di un'utilità Ruby, Genghis è un classico: http://genghisapp.com/
Ma per un utilizzo di produzione scalabile, prenditi da MongoHQ.
http://www.mongohq.com/
Inoltre, il Mongo Monitoring Service, di 10Gen, i produttori di Mongo:
https://mms.mongodb.com/
MongoClient è scritto in Meteor, Completamente gratuito, Open Source e Cross-Platform.
Strumento di gestione MongoDB multipiattaforma nativo di RoboMongo
Analizzare un database ereditato
Esistono due ottime utilità per l'analisi black-box dei database. Innanzitutto è variety.js, che ti offrirà una panoramica di alto livello. Il secondo è schema.js, che ti permetterà di scavare nelle collezioni per maggiori dettagli sui singoli campi. Quando si eredita un database Mongo di produzione, queste due utilità possono aiutarti a capire cosa sta succedendo e come sono strutturate le raccolte e i documenti.
mongo test --eval "var collection = 'users'" variety.js
mongo --shell schema.js
Connetti a un database su * .meteorapp.com
La bandiera --url può essere difficile da usare. C'è una finestra di 60 secondi per l'autenticazione, quindi il nome utente / password vengono ripristinati casualmente. Quindi assicurati di avere aperto robomongo e pronto a configurare una nuova connessione quando esegui il comando.
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
Scarica un database da * .meteor.com
La stessa cosa di prima, ma devi copiare le informazioni nel comando mongodump. Devi eseguire i seguenti comandi in modo ridicolmente veloce e richiede una coordinazione occhio / mano. Essere avvertito! Questo è un rediculously hacky! Ma divertente! Pensalo come un videogioco! : D
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
# then quickly copy all the info into the following command
mongodump -u username -p password --port 27017 --db meteor_app_url_com --host production-db-b1.meteor.io
Esportare i dati dall'istanza di sviluppo Meteor locale?
Questo comando creerà una directory / dump e memorizzerà ciascuna raccolta in un file blob BSON separato. Questo è il modo migliore per eseguire il backup o il trasferimento di database tra sistemi.
mongodump --db meteor
Ripristina i dati da un Dumpfile
L'analogo al meteordump
comando è meteorrestore
. È possibile eseguire un'importazione parziale selezionando la raccolta specifica da importare. Particolarmente utile dopo aver eseguito un comando di rilascio.
# make sure your app is running
meteor
# then import your data
mongorestore --port 3001 --db meteor /path/to/dump
# a partial import after running > db.comments.drop()
mongorestore --port 3001 --db meteor /path/to/dump -c comments.bson
Esportare una raccolta su JSON
Esegui meteora, apri un'altra finestra di terminale ed esegui il seguente comando.
mongoexport --db meteor --collection foo --port 3001 --out foo.json
Importa un file JSON in Meteor
L'importazione in un'istanza di Meteor predefinita è abbastanza semplice. Si noti che è possibile aggiungere un'opzione --jsonArray se il file json viene esportato come array da un altro sistema.
mongoimport --db meteor --port 3001 --collection foo --file foo.json
Copia dei dati tra la gestione temporanea e i database locali
Mongo supporta la copia da database a database, che è utile se si dispone di database di grandi dimensioni su un database di staging che si desidera copiare in un'istanza di sviluppo locale.
// run mongod so we can create a staging database // note that this is a separate instance from the meteor mongo and minimongo instances mongod // import the json data into a staging database // jsonArray is a useful command, particularly if you're migrating from SQL mongoimport -d staging -c assets < data.json --jsonArray // navigate to your application cd myappdir // run meteor and initiate it's database meteor // connect to the meteor mongodb meteor mongo --port 3002 // copy collections from staging database into meteor database db.copyDatabase('staging', 'meteor', 'localhost');
Compatta un database Mongo su una Ubuntu Box
Preallocazione. Mongo mette da parte lo spazio su disco in contenitori vuoti, quindi quando arriva il momento di scrivere qualcosa su disco, non deve mescolare prima i bit. Lo fa con un algoritmo di raddoppio, raddoppiando sempre la quantità di spazio su disco preallocato fino a raggiungere 2 GB; e quindi ogni file prealloc da lì è di 2 GB. Una volta che i dati sono preallocati, non si disalloca se non lo si specifica specificamente. L'uso dello spazio di MongoDB così osservabile tende a salire automaticamente, ma non verso il basso.
Alcune ricerche sulla preallocazione Mongo ...
riducendo-MongoDB-Database-file-size
Mongo-prealloc-files-assunzione-up-room
// compact the database from within the Mongo shell
db.runCommand( { compact : 'mycollectionname' } )
// repair the database from the command line
mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal
// or dump and re-import from the command line
mongodump -d databasename
echo 'db.dropDatabase()' | mongo databasename
mongorestore dump/databasename
Reimposta un set di replica
Elimina i file del database locale. Basta uscire dalla shell di Mongo, navigare in / dbpath (ovunque sia stato impostato) ed eliminare i file all'interno di quella directory.
Connessione remota a un'istanza Mongo su * .meteor.com
Sapevi della bandiera --url
? Molto maneggevole.
meteor mongo --url YOURSITE.meteor.com
Accesso ai file di registro Mongo su un'istanza di Meteora locale
Non sono facilmente accessibili. Se esegui il comando "Bundle Meteor", puoi generare un file tar.gz e quindi eseguire manualmente l'app. In questo modo, dovresti essere in grado di accedere ai registri mongo ... probabilmente nella directory .meteor / db. Se è davvero necessario accedere ai file di log di mongodb, configurare un'istanza di mongodb regolare, quindi collegare Meteor a un'istanza di mongo esterna, impostando la variabile di ambiente MONGO_URL:
MONGO_URL='mongodb://user:password@host:port/databasename'
Una volta fatto, dovresti essere in grado di accedere ai log nei soliti posti ...
/var/log/mongodb/server1.log
Ruota i file di registro su una finestra Ubuntu
Devi ruotare quei file di registro, altrimenti finiranno per consumare tutto il tuo spazio su disco. Inizia con qualche ricerca ...
MongoDB-log-file-crescita
-files ruotare-log
I file di registro possono essere visualizzati con il seguente comando ...
ls /var/log/mongodb/
Ma per impostare la rotazione dei file di registro, devi fare quanto segue ...
// put the following in the /etc/logrotate.d/mongod file
/var/log/mongo/*.log {
daily
rotate 30
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
postrotate
/bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
endscript
}
// to manually initiate a log file rotation, run from the Mongo shell
use admin
db.runCommand( { logRotate : 1 } )