Zoeken…
Opmerkingen
Als u niet tegen het gebruik van een Ruby-hulpprogramma bent, is Genghis een klassieker: http://genghisapp.com/
Maar voor schaalbaar productiegebruik, ga naar MongoHQ.
http://www.mongohq.com/
Ook de Mongo Monitoring Service van 10Gen, de makers van Mongo:
https://mms.mongodb.com/
MongoClient is geschreven in Meteor, volledig gratis, open source en cross-platform.
RoboMongo Native platformonafhankelijke MongoDB managementtool
Een overgeërfde database analyseren
Er zijn twee geweldige hulpprogramma's voor black-box-analyse van databases. Ten eerste is variety.js, waarmee u een overzicht op hoog niveau krijgt. De tweede is schema.js, waarmee je in de collecties kunt duiken voor meer informatie over de afzonderlijke velden. Bij het erven van een productie-Mongo-database kunnen deze twee hulpprogramma's u helpen begrijpen wat er aan de hand is en hoe de collecties en documenten zijn gestructureerd.
mongo test --eval "var collection = 'users'" variety.js
mongo --shell schema.js
Maak verbinding met een database op * .meteorapp.com
De vlag --url kan lastig te gebruiken zijn. Er is een venster van 60 seconden om te verifiëren en vervolgens wordt de gebruikersnaam / het wachtwoord willekeurig opnieuw ingesteld. Zorg er dus voor dat robomongo open en klaar is om een nieuwe verbinding te configureren wanneer u de opdracht uitvoert.
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
Download een database van * .meteor.com
Hetzelfde als voorheen, maar je moet de info naar het mongodump commando kopiëren. Je moet de volgende opdrachten belachelijk snel uitvoeren en het vereist hand / oog coördinatie. Wees gewaarschuwd! Dit is een belachelijk hacky! Maar leuk! Zie het als een videogame! : 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
Gegevens exporteren van lokale Meteor-ontwikkelingsinstantie?
Met deze opdracht maakt u een map / dump en slaat elke verzameling op in een afzonderlijk BSON blob-bestand. Dit is de beste manier om een back-up van databases te maken of over te dragen tussen systemen.
mongodump --db meteor
Gegevens herstellen vanuit een dumpbestand
Het analoog aan het meteordump
commando is meteorrestore
. U kunt een gedeeltelijke import uitvoeren door de specifieke te importeren verzameling te selecteren. Vooral handig na het uitvoeren van een drop-opdracht.
# 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
Een verzameling exporteren naar JSON
Voer meteoor uit, open een ander terminalvenster en voer de volgende opdracht uit.
mongoexport --db meteor --collection foo --port 3001 --out foo.json
Importeer een JSON-bestand in Meteor
Importeren naar een standaard Meteor-instantie is vrij eenvoudig. Merk op dat u een --jsonArray-optie kunt toevoegen als uw json-bestand als een array van een ander systeem wordt geëxporteerd.
mongoimport --db meteor --port 3001 --collection foo --file foo.json
Gegevens kopiëren tussen enscenering en lokale databases
Mongo ondersteunt het kopiëren van databases naar databases, wat handig is als u grote databases in een ensceneringsdatabase hebt die u naar een lokale ontwikkelingsinstantie wilt kopiëren.
// 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');
Compact een Mongo-database op een Ubuntu-box
Toekenning vooraf. Mongo reserveert schijfruimte in lege containers, dus als het tijd is om iets naar schijf te schrijven, hoeft het niet eerst bits uit de weg te schudden. Dit gebeurt door een verdubbelingsalgoritme, waarbij altijd de hoeveelheid vooraf toegewezen schijfruimte wordt verdubbeld totdat deze 2 GB bereikt; en vervolgens is elk prealloc-bestand 2 GB. Nadat gegevens vooraf zijn toegewezen, wordt de toewijzing niet meer ongedaan gemaakt, tenzij u dit specifiek aangeeft. Het waarneembare MongoDB-ruimtegebruik gaat dus meestal automatisch omhoog, maar niet omlaag.
Enig onderzoek naar de preallocatie van Mongo ...
verminderen-MongoDB database-file-size
mongo-prealloc-files-nemen-up-kamer
// 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
Een replicaset resetten
Verwijder de lokale databasebestanden. Sluit gewoon de Mongo-shell af, navigeer naar het / dbpath (waar u het ook instelt) en verwijder de bestanden in die map.
Maak op afstand verbinding met een Mongo-exemplaar op * .meteor.com
Wist je van de --url
vlag? Heel handig.
meteor mongo --url YOURSITE.meteor.com
Toegang tot Mongo-logboekbestanden op een lokale meteoorinstantie
Ze zijn niet gemakkelijk toegankelijk. Als u de opdracht 'meteor bundle' uitvoert, kunt u een tar.gz-bestand genereren en vervolgens uw app handmatig uitvoeren. Als je dat doet, zou je toegang moeten hebben tot de mongo-logs ... waarschijnlijk in de map .meteor / db. Als je echt toegang nodig hebt tot mongodb-logboekbestanden, stel je een reguliere mongodb-instantie in en verbind je Meteor met een externe mongo-instantie door de omgevingsvariabele MONGO_URL in te stellen:
MONGO_URL='mongodb://user:password@host:port/databasename'
Zodra dat is gebeurd, zou u toegang moeten hebben tot logs op de gebruikelijke plaatsen ...
/var/log/mongodb/server1.log
Roteer logbestanden op een Ubuntu Box
Moet je die logbestanden roteren, anders zullen ze uiteindelijk al je schijfruimte in beslag nemen. Begin met wat onderzoek ...
MongoDB-log-file-groei
rotate-log-files
Logbestanden kunnen worden bekeken met de volgende opdracht ...
ls /var/log/mongodb/
Maar om rotatie van logbestanden in te stellen, moet u het volgende doen ...
// 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 } )