Sök…
Anmärkningar
Om du inte är emot att köra ett Ruby-verktyg är Genghis en klassiker: http://genghisapp.com/
Men för skalbar produktionsanvändning, ta dig till MongoHQ.
http://www.mongohq.com/
Mongo Monitoring Service, från 10Gen, tillverkarna av Mongo:
https://mms.mongodb.com/
MongoClient är skriven i Meteor, helt gratis, öppen källkod och plattform.
RoboMongo Native cross-platform MongoDB management tool
Analysera en ärvd databas
Det finns två fantastiska verktyg för svartbox-analys av databaser. Först är variety.js, vilket ger dig en översikt på hög nivå. Den andra är schema.js, som låter dig gräva i samlingarna för mer information om de enskilda fälten. När du ärver en produktions-Mongo-databas kan dessa två verktyg hjälpa dig att känna till vad som händer och hur samlingarna och dokumenten är strukturerade.
mongo test --eval "var collection = 'users'" variety.js
mongo --shell schema.js
Anslut till en databas på * .meteorapp.com
Flaggan --url kan vara svår att använda. Det finns ett 60 sekunders fönster för att autentisera, och sedan återställer användarnamnet / lösenordet slumpmässigt. Så se till att robomongo är öppen och redo att konfigurera en ny anslutning när du kör kommandot.
# get the MONGO_URL string for your app
meteor mongo --url $METEOR_APP_URL
Ladda ner en databas från * .meteor.com
Samma sak som tidigare, men du måste kopiera informationen till kommandot mongodump. Du måste köra följande kommandon snabbt och det kräver koordination av hand / ögon. Varnas! Det här är ett riktigt hackigt! Men kul! Tänk på det som ett videospel! : 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
Exportera data från lokal Meteor-utvecklingsinstans?
Detta kommando skapar en / dump-katalog och lagrar varje samling i en separat BSON-blob-fil. Detta är det bästa sättet att säkerhetskopiera eller överföra databaser mellan system.
mongodump --db meteor
Återställ data från en dumpfil
Analogen till meteordump
kommandot är meteorrestore
. Du kan göra en delvis import genom att välja den specifika samling som ska importeras. Särskilt användbart efter att ha kört ett släppkommando.
# 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
Exportera en samling till JSON
Kör meteor, öppna ett annat terminalfönster och kör följande kommando.
mongoexport --db meteor --collection foo --port 3001 --out foo.json
Importera en JSON-fil till Meteor
Det är ganska enkelt att importera till en standard Meteor-instans. Observera att du kan lägga till ett alternativ --jsonArray om din json-fil exporteras som en matris från ett annat system.
mongoimport --db meteor --port 3001 --collection foo --file foo.json
Kopiera data mellan iscensättning och lokala databaser
Mongo stöder databas-till-databankopiering, vilket är användbart om du har stora databaser i en iscensättningsdatabas som du vill kopiera till en lokal utvecklingsinstans.
// 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');
Komprimera en Mongo-databas på en Ubuntu Box
Preallocation. Mongo lägger åt diskutrymme i tomma behållare, så när det är dags att skriva något till skivan behöver det inte blanda bitar ur vägen först. Det görs genom en fördubblingsalgoritm, fördubblar alltid mängden hårddiskutrymme som förinställts tills den når 2 GB; och sedan är varje förhandsgranskningsfil 2 GB. När data har fördelats om tilldelas de inte om du inte specifikt ber om det. Så observerbar MongoDB-rymdanvändning tenderar att gå upp automatiskt, men inte ner.
En del forskning om förflyttningen av Mongo ...
reducera-mongodb-databasfilen storlek
Mongo-prealloc-filer tagande-up-rummet
// 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
Återställ en replikuppsättning
Radera de lokala databasfilerna. Avsluta bara Mongo-skalet, navigera till / dbpath (var du än ställer in det) och ta bort filerna i den katalogen.
Anslut på distans till en Mongo-instans på * .meteor.com
Visste du om --url
flaggan? Väldigt händig.
meteor mongo --url YOURSITE.meteor.com
Få åtkomst till Mongo-loggfiler i en lokal meteorinstans
De är inte lättillgängliga. Om du kör kommandot "meteorbunt" kan du generera en tar.gz-fil och sedan köra din app manuellt. Om du gör det borde du kunna komma åt mongologgarna ... antagligen i katalogen .meteor / db. Om du verkligen behöver komma åt mongodb-loggfiler kan du ställa in en vanlig mongodb-instans och sedan ansluta Meteor till en extern mongo-instans genom att ställa in MONGO_URL-miljövariabeln:
MONGO_URL='mongodb://user:password@host:port/databasename'
När detta är gjort bör du kunna komma åt loggar på vanliga platser ...
/var/log/mongodb/server1.log
Rotera loggfiler på en Ubuntu Box
Du måste rotera loggfilerna, så kommer de så småningom att äta upp allt ditt diskutrymme. Börja med lite forskning ...
MongoDB-log-file-tillväxt
Rotera-log-filer
Loggfiler kan visas med följande kommando ...
ls /var/log/mongodb/
Men för att ställa in loggfilrotation måste du göra följande ...
// 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 } )