MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Réduction de la taille du fichier de la base de données MongoDB

MISE À JOUR : avec le compact commande et WiredTiger, il semble que l'espace disque supplémentaire sera effectivement libéré sur le système d'exploitation.

MISE À JOUR : à partir de la v1.9+, il existe un compact commande.

Cette commande effectuera un compactage "en ligne". Il aura encore besoin d'espace supplémentaire, mais pas autant.

MongoDB compresse les fichiers en :

  • copier les fichiers vers un nouvel emplacement
  • parcourir les documents en boucle et les réorganiser / les résoudre
  • remplacement des fichiers d'origine par les nouveaux fichiers

Vous pouvez faire cette "compression" en exécutant mongod --repair ou en se connectant directement et en exécutant db.repairDatabase() .

Dans les deux cas, vous avez besoin d'espace quelque part pour copier les fichiers. Maintenant, je ne sais pas pourquoi vous n'avez pas assez d'espace pour effectuer une compression, cependant, vous avez quelques options si vous avez un autre ordinateur avec plus d'espace.

  1. Exportez la base de données vers un autre ordinateur avec Mongo installé (en utilisant mongoexport ) et ensuite vous pouvez importer cette même base de données (en utilisant mongoimport ). Cela se traduira par une nouvelle base de données plus compressée. Vous pouvez maintenant arrêter le mongod d'origine remplacez par les nouveaux fichiers de base de données et vous êtes prêt à partir.
  2. Arrêtez le mongod actuel et copiez les fichiers de la base de données sur un ordinateur plus gros et exécutez la réparation sur cet ordinateur. Vous pouvez ensuite replacer les nouveaux fichiers de base de données sur l'ordinateur d'origine.

Il n'existe actuellement aucun bon moyen de "compacter sur place" en utilisant Mongo. Et Mongo peut certainement aspirer beaucoup d'espace.

La meilleure stratégie actuelle pour le compactage consiste à exécuter une configuration maître-esclave. Vous pouvez ensuite compacter l'esclave, le laisser rattraper et les basculer. Je sais encore un peu poilu. Peut-être que l'équipe Mongo proposera un meilleur compactage sur place, mais je ne pense pas que ce soit en haut de leur liste. L'espace disque est actuellement supposé être bon marché (et c'est généralement le cas).