Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

startShardDraining (comando de base de datos)

startShardDraining

Inicia el proceso de extracción de fragmentos de una partición para prepararla para su eliminación de un clúster fragmentado.

Cuando se ejecuta el comando, le indica al balanceador que se desea vaciar el fragmento especificado. De forma asíncrona, el balanceador comienza a mover los fragmentos del fragmento a otros fragmentos del clúster. Una vez que el balanceador completa este proceso, el fragmento no contiene datos y puede eliminarse del clúster de forma segura.

Nota

El balanceador debe estar habilitado para que startShardDraining mueva fragmentos fuera del fragmento. Si el balanceador está deshabilitado, no se migra ningún fragmento y shardDrainingStatus Continúa informando sobre los trabajos restantes en el fragmento.

El comando devuelve un error si el fragmento no existe; de ​​lo contrario, devuelve ok.

Para comprobar el estado de un fragmento en proceso de drenaje, utilice el shardDrainingStatus comando.

Para detener el drenaje de un fragmento, consulte el stopShardDraining comando.

Para eliminar un fragmento drenado, consulte el commitShardRemoval comando.

Nuevo en la versión 8.3.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Nota

Este comando no es compatible en MongoDB Atlas. Consulta Modify your Atlas Sharded Cluster para añadir o remover particiones de tu clúster de Atlas.

El comando tiene la siguiente sintaxis:

db.adminCommand( {
startShardDraining: <shardToDrain>
} )

Si tienes habilitado authorization, debes tener el rol de clusterManager o cualquier rol que incluya la acción de removeShard.

No se puede realizar una copia de seguridad del clúster mientras se drena el fragmento.

Puedes tener más de una operación de drenaje de fragmentos en curso al mismo tiempo.

Cada base de datos en un clúster fragmentado tiene un fragmento principal. Si el fragmento que desea vaciar es también el principal de una de las bases de datos del clúster, deberá mover manualmente las bases de datos a un nuevo fragmento después de migrar todos los datos del fragmento actual.movePrimary Consulte el comando y la sección "Eliminar fragmentos de un clúster fragmentado" para obtener más información.

Las colecciones no fragmentadas se almacenan en fragmentos individuales. Si una de estas colecciones se encuentra en el fragmento que desea eliminar, primero debe migrarla a otro fragmento.

Para migrar una colección no fragmentada, consulte el moveCollection comando.

Cuando se vacía un fragmento en un clúster con una distribución desigual de fragmentos, el equilibrador primero elimina los fragmentos del fragmento que se está vaciando y luego equilibra la distribución desigual de fragmentos restante.

Tip

mongos convierte la startShardDraining preocupación de escritura del "majority" comando a.

El vaciado de un fragmento puede provocar el cierre de un cursor de flujo de cambios abierto, y es posible que el cursor de flujo de cambios cerrado no se pueda reanudar por completo.

Si ejecuta startShardDraining mientras su clúster está ejecutando una operación DDL (operación que modifica una colección reshardCollection como), el vaciado de fragmentos solo se ejecuta después de que finaliza la operación DDL concurrente.

Para comenzar a drenar un fragmento, utilice el db.adminCommand() método:

db.adminCommand( {
startShardDraining: "shard04"
} )

Volver

división

En esta página