sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo escalar MongoDB?

Si se está quedando sin disco, obviamente necesita obtener un disco más grande.

Hay varias formas de migrar sus datos, realmente depende del tipo de tiempo de actividad que necesite. Los primeros pasos, por supuesto, implican empaquetar la máquina y crear el nuevo volumen.

Estos consejos van del más fácil al más difícil.

¿Puede desconectar completamente la base de datos durante varios minutos?

Si es así, haz esto (migración por copia):

  1. Montar EBS nuevo en el servidor.
  2. Evite que su aplicación se conecte a Mongo.
  3. Apague mongod y espere a que todo se escriba (verifique los registros)
  4. Copie todos los archivos de datos (y probablemente los registros) al nuevo volumen de EBS.
  5. Mientras se realiza la copia, actualice su secuencia de comandos de inicio mongod (o archivo de configuración) para apuntar al nuevo volumen.
  6. Inicie mongod y verifique la conexión
  7. Reinicia tu aplicación.

¿Puede desconectar la base de datos durante unos minutos?

Si es así, haz esto (slaving y cambiar):

  1. Inicie una nueva instancia y monte el nuevo EBS en ese servidor.
  2. Instale / inicie mongod como --slave apuntando a la base de datos actual. (es posible que deba reiniciar el actual como --master)
  3. El esclavo realizará una nueva sincronización. Una vez que el esclavo esté actualizado, hará un "cambio" (siguientes pasos).
  4. Desactive las escrituras del sistema.
  5. Cerrar el proceso mongod original.
  6. Reinicie el "nuevo" mongod como maestro en lugar de esclavo.
  7. Reactivar las escrituras del sistema apuntando al nuevo maestro.

Hechos correctamente, esos últimos tres pasos pueden ocurrir en minutos o incluso segundos.

¿No puede permitirse ningún tiempo de inactividad?

Si es así, haz esto (master-master ):

  1. Inicie una nueva instancia y monte el nuevo EBS en ese servidor.
  2. Instale / inicie mongod como maestro y esclavo en la base de datos actual. (es posible que deba reiniciar la corriente como maestro, ¿tiempo de inactividad mínimo?)
  3. La nueva computadora debería hacer una nueva sincronización.
  4. Una vez que la nueva computadora esté actualizada, cambie el sistema para que apunte al nuevo servidor.

Sé que parece que esta última versión es en realidad la mejor, pero puede ser un poco arriesgado (al momento de escribir este artículo). La razón es simplemente que honestamente he tenido muchos problemas con la replicación "Maestro-Maestro", especialmente si no comienzas con ambos activos.

Si planea usar este método, le sugiero encarecidamente que primero realice una práctica más pequeña. Si algo falla aquí, Mongo podría simplemente borrar todos sus archivos de datos, lo que tendrá el efecto de eliminar más cosas.

Si obtiene una buena versión de esto, publique los comandos, me gustaría verlo en acción.