Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

startShardDraining (comando de base de datos)

startShardDraining

Inicia el proceso de drenar fragmentos de una partición para prepararla y extraerla de un clúster particionado.

Cuando se ejecuta el comando, se le informa al balanceador que desea drenar la partición dada. Asincrónicamente, el equilibrador comienza entonces a mover fragmentos de la partición a otros nodos en el clúster. Una vez que el balanceador haya completado este proceso, la partición no contendrá datos y se podrá eliminar de forma segura del clúster.

Nota

El balanceador debe estar habilitado para que startShardDraining pueda mover fragmentos fuera de la partición. Si el balanceador está deshabilitado, no se migran fragmentos y shardDrainingStatus continúa informando el trabajo restante en la partición.

El comando devuelve un error si la partición no existe; de lo contrario, devuelve ok.

Para comprobar el estado de una partición drenando, usa el comando shardDrainingStatus.

Para detener el agotamiento de una partición, consulta el comando stopShardDraining.

Para eliminar una partición drenada, consulte el comando commitShardRemoval.

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 puedes hacer una copia de seguridad del clúster mientras drenas la partición.

Puede haber más de una operación de drenaje de particiones en curso a la vez.

Cada base de datos en un clúster tiene una partición primaria. Si la partición que desea drenar también es la primaria de una de las bases de datos del clúster, entonces debe mover manualmente las bases de datos a una nueva partición después de migrar todos los datos desde la partición. Consulta el comando movePrimary y el comando Remover particiones de un clúster para obtener más información.

Las colecciones sin particiones se almacenan en shards individuales. Si una de estas colecciones está en la partición que deseas eliminar, primero debes migrar la colección a una diferente.

Para migrar una colección no particionada, consulta el comando moveCollection.

Cuando drena una partición en un clúster con una distribución desigual de fragmentos, el balanceador primero remueve los fragmentos de la partición que se está drenando y luego balancea la distribución desigual de fragmentos restantes.

Tip

mongos convierte el nivel de confirmación de escritura (write concern) del comando startShardDraining en "majority".

Drenar una partición puede causar que un cursor de flujo de cambios abierto se cierre, y puede que el cursor cerrado de flujo de cambios no se pueda reanudar completamente.

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

Para comenzar a drenar una partición, use el método db.adminCommand():

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

Volver

división

En esta página