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.

variety.js

mongo test --eval "var collection = 'users'" variety.js

schema.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 } )


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow