Suche…


Bemerkungen

Wenn Sie kein Ruby-Programm ausführen möchten, ist Genghis ein Klassiker: http://genghisapp.com/

Wenn Sie jedoch eine skalierbare Produktionsumgebung benötigen, besuchen Sie MongoHQ.
http://www.mongohq.com/

Auch der Mongo Monitoring Service von 10Gen, die Macher von Mongo:
https://mms.mongodb.com/

MongoClient ist in Meteor, Free, Open Source und Cross-Platform geschrieben.

RoboMongo Native, plattformübergreifendes MongoDB-Verwaltungstool

Vererbte Datenbank analysieren

Es gibt zwei großartige Dienstprogramme für die Black-Box-Analyse von Datenbanken. Zuerst ist vielfalt.js, die Ihnen einen übergeordneten Überblick verschafft. Die zweite ist schema.js, mit der Sie in die Sammlungen einsteigen können, um mehr Details zu den einzelnen Feldern zu erhalten. Wenn Sie eine Mongo-Produktionsdatenbank übernehmen, können Sie mit diesen beiden Dienstprogrammen verstehen, was vor sich geht und wie die Sammlungen und Dokumente strukturiert sind.

vielfalt.js

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

schema.js

mongo --shell schema.js 

Stellen Sie eine Verbindung zu einer Datenbank auf * .meteorapp.com her

Das Flag --url kann schwierig zu verwenden sein. Es gibt ein 60 Sekunden langes Fenster, um sich zu authentifizieren, und der Benutzername / das Kennwort wird zufällig zurückgesetzt. Stellen Sie sicher, dass robomongo geöffnet ist und bereit ist, eine neue Verbindung zu konfigurieren, wenn Sie den Befehl ausführen.

# get the MONGO_URL string for your app  
meteor mongo --url $METEOR_APP_URL

Laden Sie eine Datenbank von * .meteor.com herunter

Das Gleiche wie zuvor, aber Sie müssen die Informationen in den Befehl mongodump kopieren. Sie müssen die folgenden Befehle recht schnell ausführen, und dies erfordert eine Hand / Auge-Koordination. Sei gewarnt! Dies ist ein unheilvoller Hacker! Aber Spaß! Betrachten Sie es als Videospiel! : 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

Daten aus lokaler Meteor-Entwicklungsinstanz exportieren?

Dieser Befehl erstellt ein / dump-Verzeichnis und speichert jede Sammlung in einer separaten BSON-Blob-Datei. Dies ist der beste Weg, um Datenbanken zwischen Systemen zu sichern oder zu übertragen.

mongodump --db meteor

Wiederherstellen von Daten aus einem Dumpfile

Der Analog zum meteordump Befehl ist meteorrestore . Sie können einen teilweisen Import durchführen, indem Sie die bestimmte Sammlung auswählen, die importiert werden soll. Besonders nützlich, nachdem ein Drop-Befehl ausgeführt wurde.

# 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

Exportieren Sie eine Collection nach JSON

Führen Sie meteor aus, öffnen Sie ein anderes Terminalfenster und führen Sie den folgenden Befehl aus.

mongoexport --db meteor --collection foo --port 3001 --out foo.json

Importieren Sie eine JSON-Datei in Meteor

Das Importieren in eine Standard-Meteor-Instanz ist ziemlich einfach. Beachten Sie, dass Sie die Option --jsonArray hinzufügen können, wenn Ihre Json-Datei als Array eines anderen Systems exportiert wird.

mongoimport --db meteor --port 3001 --collection foo --file foo.json

Daten zwischen Staging und lokalen Datenbanken kopieren

Mongo unterstützt das Kopieren von Datenbank zu Datenbank. Dies ist hilfreich, wenn Sie große Datenbanken in einer Staging-Datenbank haben, die Sie in eine lokale Entwicklungsinstanz kopieren möchten.

// 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');

Komprimieren Sie eine Mongo-Datenbank auf einer Ubuntu-Box

Vorbelegung Mongo legt Festplattenplatz in leeren Containern zur Seite. Wenn also Zeit ist, etwas auf die Festplatte zu schreiben, muss er nicht erst die Bits aus dem Weg räumen. Dies geschieht durch einen Verdopplungsalgorithmus, bei dem der vorab zugewiesene Speicherplatz immer verdoppelt wird, bis er 2 GB erreicht. und dann ist jede Prealloc-Datei von dort 2 GB. Sobald die Daten vorbelegt sind, werden sie nicht aufgehoben, es sei denn, Sie geben dies ausdrücklich an. Die beobachtbare MongoDB-Speicherplatznutzung nimmt also automatisch zu, aber nicht nach unten.

Einige Recherchen zur Mongo-Vorbesetzung ...
Reduzieren der Größe der Mongodb-Datenbankdatei
mongo-prealloc-dateien-aufnahmeraum

// 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

Setzen Sie einen Replikatsatz zurück

Löschen Sie die lokalen Datenbankdateien. Verlassen Sie einfach die Mongo-Shell, navigieren Sie zum / dbpath (wo auch immer Sie es einrichten) und löschen Sie die Dateien in diesem Verzeichnis.

Stellen Sie eine Remote-Verbindung zu einer Mongo-Instanz auf * .meteor.com her

Wussten Sie über die Flagge von --url ? Sehr praktisch

meteor mongo --url YOURSITE.meteor.com

Zugriff auf Mongo-Protokolldateien in einer lokalen Meteor-Instanz

Sie sind nicht leicht zugänglich. Wenn Sie den Befehl "meteor bundle" ausführen, können Sie eine tar.gz-Datei generieren und Ihre App dann manuell ausführen. Auf diese Weise sollten Sie in der Lage sein, auf die Mongo-Logs zuzugreifen ... wahrscheinlich im Verzeichnis .meteor / db. Wenn Sie wirklich auf mongodb-Protokolldateien zugreifen müssen, richten Sie eine reguläre mongodb-Instanz ein und verbinden Sie Meteor mit einer externen mongo-Instanz, indem Sie die Umgebungsvariable MONGO_URL festlegen:

MONGO_URL='mongodb://user:password@host:port/databasename'

Sobald dies erledigt ist, sollten Sie an den üblichen Stellen auf Protokolle zugreifen können ...

/var/log/mongodb/server1.log

Protokolldateien auf einer Ubuntu-Box drehen

Diese Protokolldateien müssen rotiert werden, da sonst der gesamte Festplattenspeicher aufgebraucht wird. Beginnen Sie mit etwas Forschung ...
Mongodb-Log-Datei-Wachstum
Rotationsprotokolldateien

Protokolldateien können mit dem folgenden Befehl angezeigt werden ...

ls /var/log/mongodb/

Um die Rotation der Protokolldatei einzurichten, müssen Sie Folgendes tun:

// 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow