Pregunta

Estoy teniendo un problema de espacio con MongoDB y mi computadora de escritorio actual de Ubuntu 12.04 actual.Siempre usé la configuración predeterminada, lo que significa que los datos se almacenan físicamente en / var / lib / mongodb.En el momento en que el tamaño de la base de datos creció mucho y ahora me gustaría dejar caer algunas colecciones para tener un espacio vacío en mi disco duro.He comprobado este y otros métodos, pero cada vez que ejecuto la función Eliminar que sigoObtención del siguiente mensaje de error:

Can't take a write lock while out of disk space

La primera solución vino a mi mente es establecer la ruta de MongoDB a un disco duro externo o un disco USB y eliminar físicamente la carpeta con rm -rf.¿Sería eso una solución segura?¿Hay alguna otra solución a este problema?

¿Fue útil?

Solución

Mongodb es muy bueno para copiar las bases de datos, ya que todo lo que tiene que hacer es copiar el directorio completo de datos a otro lugar y luego puede apuntar a un nuevo proceso de mongod en él y funcionará.

Por lo tanto, sus pasos son:

  • Encuentre el directorio de datos actual
  • Copiar esto a otra ubicación
  • Eliminar cualquier archivo que tenga .lock en el directorio (esto detiene a Mongo de cargar de nuevo)
  • Ahora inicia otro Mongo con el siguiente comando:

    mongod --dbpath <path to new directory on new disk> --port 27020
    

Esto abrirá ahora una nueva base de datos Mongo (pero en un puerto diferente para evitar cualquier problema con un mongod que ya pueda estar funcionando). Ahora, tendrá un nuevo mongod corriendo contra el nuevo disco sin necesidad de eliminar colecciones \ DBS. Recuerde que MongoDB es codicioso y no abandona voluntariamente el espacio en el disco cuando elimina una colección. Tendrá que ejecutar

 db.repairDatabase()

Una vez que esté feliz, puede eliminar de forma segura el antiguo directorio de datos de MongoDB y luego copiar el nuevo sobre él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top