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
/ /

shardDrainingStatus (comando de base de datos)

shardDrainingStatus

Muestra el estado de un fragmento en proceso de drenaje, indicando si el equilibrador sigue transfiriendo fragmentos a otros fragmentos del clúster o si el proceso ha finalizado.

El comando devuelve un error si el fragmento no existe; de ​​lo contrario, devuelve el estado de la operación de vaciado.

Para comenzar a drenar un fragmento, consulte el startShardDraining .

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( {
shardDrainingStatus: <shard>
} )

Este comando devuelve la siguiente salida:

Campo
Tipo
Descripción

msg

string

Proporciona la operación de drenaje actual que está realizando el equilibrador.

state

string

Proporciona el estado de la operación de drenaje.

shard

string

Indica el fragmento que se está drenando.

remaining

Documento

Muestra las tareas restantes que el equilibrador debe realizar para vaciar el fragmento.

remaining.chunks

long

Indica la cantidad de fragmentos que aún se encuentran en el shard.

remaining.dbs

long

Indica el número de bases de datos que aún se encuentran en el fragmento.

remaining.jumboChunks

long

Indica la cantidad de grandes fragmentos que aún se encuentran en el shard.

remaining.collectionsToMove

long

Indica el número de colecciones que aún se encuentran en el fragmento.

note

string

Proporciona un mensaje adicional para el usuario.

dbsToMove

arreglo

Indica las bases de datos que utilizan el fragmento de drenaje como fragmento principal. Antes de poder eliminar el fragmento del clúster, debe mover manualmente estas bases de datos a un nuevo fragmento mediante el movePrimary comando.

collectionsToMove

arreglo

Indica colecciones no fragmentadas almacenadas en el fragmento que se está vaciando. Antes de poder eliminar el fragmento del clúster, debe mover manualmente estas colecciones a otro fragmento mediante el moveCollection comando.

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

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.

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

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

Para comprobar el estado de la operación de drenaje, utilice el comando shardDrainingStatus:

db.adminCommand( { 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")
}
}
}

Volver

shardCollection

En esta página