J'ai des problèmes avec MongoDB et l'utilisation de l'espace. En particulier, j'avais une fois une grande collection d'environ 600 millions d'enregistrements totalisant 110+ Go sur le disque. Récemment, j'ai décidé de le supprimer car les données étaient obsolètes, pour ce faire, j'ai supprimé la collection via l'interface Web de rockmongo. En conséquence, rockmongo ne me montre plus la collection, mais mon utilisation du disque n'a pas changé du tout.
Y a-t-il une opération propre dont je ne suis pas au courant, qui doit être exécutée afin de synchroniser la base de données avec les fichiers de base de données sur le disque?
J'ai essayé d'effectuer une "réparation" mais le système se plaint qu'il n'y a pas assez d'espace sur le disque ... c'est parce qu'il est tout utilisé par MongoDB.
mongodump
,oldDatabase.dropDatabase()
,mongorestore --db newDatabase dump/oldDatabase
.Bien que l'approche mongodump / drop / mongorestore ci-dessus fonctionne correctement d'un point de vue technique, elle vous obligera à mettre la base de données hors ligne pendant que vous le faites, ce qui serait un événement affectant le service.
Si vous souhaitez le faire sans temps d'arrêt ET si vous utilisez des jeux de répliques MongoDB [1], vous pouvez le faire comme ceci:
Répétez ensuite les étapes ci-dessus pour chacun des autres membres du jeu de réplicas.
[1] https://docs.mongodb.org/manual/tutorial/deploy-replica-set )
la source
Selon cette FAQ https://docs.mongodb.com/manual/faq/storage/#faq-disk-size
la seule façon consiste à procéder comme suit:
la source