Recherche…


Remarques

Si vous n'êtes pas opposé à l'utilisation d'un utilitaire Ruby, Genghis est un classique: http://genghisapp.com/

Mais pour une utilisation évolutive de la production, rendez-vous à MongoHQ.
http://www.mongohq.com/

Aussi, le Mongo Monitoring Service, de 10Gen, les fabricants de Mongo:
https://mms.mongodb.com/

MongoClient est écrit dans Meteor, Complètement Gratuit, Open Source et Cross-Platform.

Outil de gestion MongoDB natif multi-plateforme RoboMongo

Analyser une base de données héritée

Il existe deux excellents utilitaires pour l'analyse des bases de données en boîte noire. Le premier est la variété.js, qui vous donnera un aperçu de haut niveau. Le second est schema.js, qui vous permettra de creuser dans les collections pour plus de détails sur les champs individuels. Lorsque vous héritez d'une base de données Mongo de production, ces deux utilitaires peuvent vous aider à comprendre ce qui se passe et comment les collections et les documents sont structurés.

variété.js

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

schema.js

mongo --shell schema.js 

Connectez-vous à une base de données sur * .meteorapp.com

Le drapeau --url peut être difficile à utiliser. Il y a une fenêtre de 60 secondes pour s'authentifier, puis le nom d'utilisateur / mot de passe est réinitialisé au hasard. Assurez-vous donc que robomongo est ouvert et prêt à configurer une nouvelle connexion lorsque vous exécutez la commande.

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

Téléchargez une base de données à partir de * .meteor.com

Même chose qu'auparavant, mais vous devez copier les informations dans la commande mongodump. Vous devez exécuter les commandes suivantes rapidement, et cela nécessite une coordination manuelle / visuelle. Être averti! Ceci est un piratage rediculeusement! Mais amusant! Pensez-y comme un jeu vidéo! :RÉ

# 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

Exporter des données depuis une instance de développement Meteor locale?

Cette commande crée un répertoire / dump et stocke chaque collection dans un fichier blob BSON distinct. C'est le meilleur moyen de sauvegarder ou de transférer des bases de données entre systèmes.

mongodump --db meteor

Restaurer des données à partir d'un fichier de vidage

L'analogue de la meteordump commande est meteorrestore . Vous pouvez effectuer une importation partielle en sélectionnant la collection spécifique à importer. Particulièrement utile après avoir exécuté une commande drop.

# 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

Exporter une collection vers JSON

Exécutez meteor, ouvrez une autre fenêtre de terminal et exécutez la commande suivante.

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

Importer un fichier JSON dans Meteor

Importer dans une instance Meteor par défaut est assez facile. Notez que vous pouvez ajouter une option --jsonArray si votre fichier json est exporté en tant que tableau depuis un autre système.

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

Copie de données entre bases de données intermédiaires et locales

Mongo prend en charge la copie de base de données à base de données, ce qui est utile si vous souhaitez copier des bases de données volumineuses sur une base de données intermédiaire dans une instance de développement local.

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

Compacter une base de données Mongo sur une boîte Ubuntu

Préallocation Mongo met de l’espace disque dans des conteneurs vides, alors quand vient le temps d’écrire quelque chose sur le disque, il n’a pas à mélanger les bits en premier. Il le fait par un algorithme de doublage, doublant toujours la quantité d’espace disque pré-alloué jusqu’à ce qu’il atteigne 2 Go; et ensuite chaque fichier pré-appel est de 2 Go. Une fois les données pré-allouées, elles ne sont plus allouées à moins que vous ne le leur disiez spécifiquement. Donc, l’utilisation de l’espace MongoDB, qui est observable, a tendance à augmenter automatiquement, mais pas à la baisse.

Quelques recherches sur la préallocation Mongo ...
réduire-mongodb-taille-fichier-base de données
mongo-préallocation de fichiers

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

Réinitialiser un jeu de répliques

Supprimez les fichiers de la base de données locale. Quittez simplement le shell Mongo, accédez au / dbpath (où que vous le configuriez) et supprimez les fichiers dans ce répertoire.

Connectez-vous à distance à une instance Mongo sur * .meteor.com

Avez-vous connu le drapeau --url ? Très utile.

meteor mongo --url YOURSITE.meteor.com

Accès aux fichiers journaux Mongo sur une instance Meteor locale

Ils ne sont pas facilement accessibles. Si vous exécutez la commande 'meteor bundle', vous pouvez générer un fichier tar.gz, puis exécuter votre application manuellement. En faisant cela, vous devriez pouvoir accéder aux journaux mongo ... probablement dans le répertoire .meteor / db. Si vous avez vraiment besoin d'accéder aux fichiers journaux mongodb, configurez une instance mongodb standard, puis connectez Meteor à une instance mongo externe, en définissant la variable d'environnement MONGO_URL:

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

Une fois cela fait, vous devriez pouvoir accéder aux journaux aux endroits habituels ...

/var/log/mongodb/server1.log

Faire pivoter les fichiers journaux sur une boîte Ubuntu

Vous devez faire pivoter ces fichiers journaux ou ils finiront par consommer tout votre espace disque. Commencez par des recherches ...
mongodb-log-file-growth
tourner-log-files

Les fichiers journaux peuvent être visualisés avec la commande suivante ...

ls /var/log/mongodb/

Mais pour configurer la rotation des fichiers journaux, vous devez procéder comme suit:

// 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow