2011-04-01 22 views

Respuesta

19
  1. Sí, es correcto.
  2. No, es mejor darle a mongodb tanto espacio de disco como sea posible (si mongodb puede asignar más espacio que una menor fragmentación del disco, en un espacio de asignación adicional es una operación costosa). Pero si lo desea, puede ejecutar db.repairDatabase() de mongodb shell para reducir el tamaño de la base de datos.
  3. Sí se puede ejecutar en la instancia repairDatabase mongodb vivo (mejor correr en ninguna hora pico)
+20

Si bien puede ejecutar la reparación en un sistema activo, lo dejará inutilizable ya que bloquea el servidor mientras se ejecuta; Yo diría que efectivamente significa que no puede ejecutarlo en una instancia en vivo si planea seguir usando esa instancia. –

7

Esto es algo de un duplicado de esta pregunta MongoDB ...

Auto compact the deleted space in mongodb?

ver la respuesta para obtener más información sobre cómo ...

  • Reclame algo de espacio
  • Uso serverside JS para ejecutar un trabajo recurrente para volver espacio (incluyendo una secuencia de comandos puede ejecutar ...)
  • cómo es posible que desee ver en con límite máximo Colecciones para algún uso casos!

también se puede ver esta entrada de blog relacionada: http://learnmongo.com/posts/compacting-mongodb-data-files/

3

tengo otra solución que podría funcionar mejor que no hacer db.repairDatabase() si usted no puede permitirse para el sistema que va a bloquear, o Don No tengo el doble de almacenamiento.

Debe utilizar un conjunto de réplicas.

Mi idea es una vez que haya eliminado todos los datos en exceso que están engullendo su disco, detenga una réplica secundaria, limpie su directorio de datos, inicie y permita que vuelva a sincronizarse con el maestro. Repita con los otros secundarios, uno a la vez.

En el maestro, haga rs.stepDown() para pasar MASTER a uno de los secundarios sincronizados, ahora detenga este, límpielo y déjelo resincronizar.

El proceso lleva mucho tiempo, pero solo debería costar unos segundos de tiempo de inactividad, cuando lo hace rs.stepDown().

Cuestiones relacionadas