Definición
sh.shardDrainingStatus(shardId)Muestra el estado de una partición en drenaje, ya sea que el balanceador todavía esté moviendo fragmentos a otras particiones en el clúster o que el proceso esté completo.
Nuevo en la versión 9.0.
Si no especifica
shardId, el método devuelve el estado de todos los fragmentos que se están vaciando actualmente.Importante
Método mongosh
Esta página documenta un método
mongosh. Esta no es la documentación para los comandos de base de datos ni para los drivers específicos de lenguajes, como Nodo.js.Para el comando de base de datos, consulta el comando
shardDrainingStatus.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Compatibilidad
Este método 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 con MongoDB Atlas. Consulte Modificar su clúster de Atlas para agregar o remover particiones de su clúster de Atlas.
Sintaxis
sh.shardDrainingStatus( <shardId> )
Parámetros
Parameter | Tipo | Descripción |
|---|---|---|
| string | Opcional. Nombre del fragmento drenante sobre el que se informará. Si se omite, el método informará sobre todos los fragmentos drenantes. |
Campos de salida
Para ver los campos de salida, consulte el comando shardDrainingStatus.
Comportamiento
Requisitos de acceso
Si tienes habilitado authorization, debes tener el rol de clusterManager o cualquier rol que incluya la acción de removeShard.
Requisitos para la migración de la base de datos
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.
Requisitos de migración de la colecció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.
Ejemplo
El siguiente ejemplo devuelve el estado de vaciado del fragmento shard04:
sh.shardDrainingStatus( "shard04" )
{ msg: "draining ongoing", state: "ongoing", remaining: { chunks: Long(2), dbs: Long(2), jumboChunks: Long(0), collectionsToMove: Long(2) }, shard: "shard04", note: "you need to call moveCollection for collectionsToMove and afterwards movePrimary for the dbsToMove", dbsToMove: [ "fizz", "buzz" ], collectionsToMove: [ "fizz.coll1", "buzz.coll1" ], ok: 1, operationTime: Timestamp(1575399086, 1655), $clusterTime: { clusterTime: Timestamp(1575399086, 1655), signature: { hash: BinData(0,"XBrTmjMMe82fUtVLRm13GBVtRE8="), keyId: Long("6766255701040824328") } } }