Definición
sh.status()Cuando se ejecuta en una instancia
mongos, imprime un informe formateado de la configuración de particionado y la información relacionada con los fragmentos existentes en un cluster con particionado. El comportamiento por defecto suprime la información detallada de los fragmentos si el número total de fragmentos es mayor o igual a 20.The
sh.status()method has the following parameter:ParameterTipoDescripciónverbosebooleano
opcional. Determina el nivel de verbosidad.
Si
true, el método muestra:Detalles completos de la distribución de fragmentos a través de particiones, incluso si tienes 20 o más fragmentos, así como el número de fragmentos en cada partición.
Detalles de instancias mongos activas.
Si
false, el método muestra:Detalles completos de la distribución de fragmentos en particiones sólo si tienes menos de 20 fragmentos. Si tienes 20 o más fragmentos, el método en su lugar devuelve un mensaje
too many chunks to print ..., mostrando solo la cantidad de fragmentos en cada partición.
El valor detallado por defecto es
false.La salida también incluye una sección de
shardedDataDistribution, que brinda métricas de distribución de datos para cada colección particionada. Estos datos son los mismos que la salida de la etapa de agregación$shardedDataDistribution.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Importante
Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.
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.
Ejemplos de salida
La sección Versión de particionado muestra información sobre la base de datos de configuración:
--- Sharding Status --- sharding version: { "_id" : <num>, "minCompatibleVersion" : <num>, "currentVersion" : <num>, "clusterId" : <ObjectId> }
La sección Particiones enumera información sobre la(s) partición(es). Para cada partición, la sección muestra el nombre, el host y las etiquetas asociadas, si hay alguna.
shards: { "_id" : <shard name1>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } { "_id" : <shard name2>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } ...
La sección mongos Instancias activas muestra, por defecto, información sobre la versión y el recuento de mongos instancias que han estado activas en los últimos 60 segundos:
active mongoses: <version> : <num>
If the method is run with the verbose parameter to true, the Active mongos Instances section displays additional information:
active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> }
El Autosplit muestra información sobre si autosplit está activado:
autosplit: Currently enabled: <yes|no>
La sección Balancer enumera información sobre el estado del balanceador. Esto proporciona una perspectiva sobre la operación actual del balanceador y puede ser útil para solucionar problemas en un clúster no balanceado.
balancer: Currently enabled: yes Currently running: yes Collections with active migrations: config.system.sessions started at Fri May 15 2020 17:38:12 GMT-0400 (EDT) Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: 416 : Success 1 : Failed with error 'aborted', from shardA to shardB
La sección Bases de datos enumera información sobre la(s) base(s) de datos. Muestra el nombre de la base de datos y la partición primaria para cada base de datos.
databases: { "_id" : <dbname1>, "primary" : <string>, "partitioned" : <boolean>, "version": <document> } { "_id" : <dbname2>, "primary" : <string>, "partitioned" : <boolean>, "version": <document> } ...
La sección Colección fragmentada proporciona información sobre los detalles de fragmentación para las colecciones fragmentadas. Para cada colección fragmentada, la sección muestra la clave de fragmentación, el número de fragmentos por fragmento, la distribución de fragmentos entre los fragmentos []1 y la información de etiquetas, si la hay, para el rango de claves de fragmentación.
<dbname>.<collection> shard key: { <shard key> : <1 or hashed> } unique: <boolean> balancing: <boolean> allowMigrations: <boolean> chunks: <shard name1> <number of chunks> <shard name2> <number of chunks> ... { <shard key>: <min range1> } -->> { <shard key> : <max range1> } on : <shard name> <last modified timestamp> { <shard key>: <min range2> } -->> { <shard key> : <max range2> } on : <shard name> <last modified timestamp> ... tag: <tag1> { <shard key> : <min range1> } -->> { <shard key> : <max range1> } ...
The Sharded Data Distribution section displays data distribution information for each sharded collection:
shardedDataDistribution: [ { "ns" : "<database>.<collection>", "shards" : [ { "shardName" : "<shard name>", "numOrphanedDocs" : <num>, "numOwnedDocuments" : <num>, "ownedSizeBytes" : <num>, "orphanedSizeBytes" : <num> } ] } ]
Campos de salida
Versión de particionado
sh.status.sharding-version._idThe
_idis an identifier for the version details.
sh.status.sharding-version.minCompatibleVersionThe
minCompatibleVersionis the minimum compatible version of the config server.En las versiones de MongoDB anteriores a la 6.2, este campo está incluido en la colección
config.version, pero en la versiónmongosh2.0.0 y posteriores, el campo no se devuelve en la salidash.status(). A partir de MongoDB 6.2, este campo se elimina y no se devuelve en ninguna versión demongoshni en ninguna otra aplicación cliente. En su lugar, para obtener información sobre la versión, consulta la compatibilidad de características entre versiones (fcv).
sh.status.sharding-version.currentVersionThe
currentVersionis the current version of the config server.En las versiones de MongoDB anteriores a la 6.2, este campo está incluido en la colección
config.version, pero en la versiónmongosh2.0.0 y posteriores, el campo no se devuelve en la salidash.status(). A partir de MongoDB 6.2, este campo se elimina y no se devuelve en ninguna versión demongoshni en ninguna otra aplicación cliente. En su lugar, para obtener información sobre la versión, consulta la compatibilidad de características entre versiones (fcv).
sh.status.sharding-version.clusterIdThe
clusterIdis the identification for the sharded cluster.
Instancias activas de mongos
sh.status.active-mongosesSi
verboseesfalse,sh.status.active-mongosesmuestra la versión y el recuento de lasmongosinstancias activas. Lasmongosinstancias activas sonmongosinstancias que han sido contactadas en los últimos 60 segundos.If
verboseistrue,sh.status.active-mongosesreturns a document for each activemongosinstance containing the following fields:CampoTipo de datoDescripción_idString
El nombre del host y el puerto donde se ejecuta el
mongos. El_idtiene el formato<hostname>:<port>.advisoryHostFQDNsArreglo de cadenas
Arreglo de los nombres de dominio totalmente calificados (FQDN) de
mongos.createdfecha
Cuando se inició el
mongos.Nuevo en la versión 5.2.
mongoVersionString
Versión de MongoDB en la que se ejecuta el
mongos.pingfecha
Las instancias
mongosenvían pings al servidor de configuración cada 30 segundos. Este campo indica la última vez que se realizó el ping.upNumberLong
Número de segundos que el
mongosha estado activo desde el último ping.waitingBooleano
Este campo siempre es
truey sólo se incluye por compatibilidad con versiones anteriores.active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "created" : <ISODate>, "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> } ...
Autosplit
sh.status.autosplitsh.status.autosplitindica si la partición automática está activada actualmente.
Nota
A partir de MongoDB 6.0.3, no se realiza la división automática de fragmentos. Esto se debe a las mejoras en la política de balanceo. Los comandos de división automática aún existen, pero no ejecutan ninguna operación.
En versiones de MongoDB anteriores a 6.1:
El
balancerStartcomando y los métodos de asistente de shellmongosh.startBalancer()ysh.setBalancerState(true)también habilitan la división automática para el clúster.Para desactivar la división automática cuando el equilibrador esté habilitado, puedes utilizar
sh.disableAutoSplit().El comando
balancerStopy los métodos de asistente de shellmongosh.stopBalancer()ysh.setBalancerState(false)también desactivan la división automática para el clúster.Para habilitar la división automática cuando el balanceador esté deshabilitado, se puede usar
sh.enableAutoSplit().
Los métodos mongo sh.enableBalancing(namespace) y sh.disableBalancing(namespace) no tienen ningún efecto en la división automática.
Automerge
sh.status.automergeIndica si AutoMerger está habilitado.
Nota
La sección
automergesolo aparece si habilitas o deshabilitas el AutoMerger de forma explícita. Por defecto, el AutoMerger está habilitado.
Fragmentos
sh.status.shards._idThe
_iddisplays the name of the shard.
sh.status.shards.hostThe
hostdisplays the host location of the shard.
sh.status.shards.tagsThe
tagsdisplays all the tags for the shard. The field only displays if the shard has tags.
sh.status.shards.stateThe
statedisplays:0si la partición no es consciente de particiones.1si la partición tiene conocimiento de la partición.
Balanceador
Nota
A partir de MongoDB 6.0.3, no se realiza la división automática de fragmentos. Esto se debe a las mejoras en la política de balanceo. Los comandos de división automática aún existen, pero no ejecutan ninguna operación.
En versiones de MongoDB anteriores a 6.1:
El
balancerStartcomando y los métodos de asistente de shellmongosh.startBalancer()ysh.setBalancerState(true)también habilitan la división automática para el clúster.Para desactivar la división automática cuando el equilibrador esté habilitado, puedes utilizar
sh.disableAutoSplit().El comando
balancerStopy los métodos de asistente de shellmongosh.stopBalancer()ysh.setBalancerState(false)también desactivan la división automática para el clúster.Para habilitar la división automática cuando el balanceador esté deshabilitado, se puede usar
sh.enableAutoSplit().
Los métodos mongo sh.enableBalancing(namespace) y sh.disableBalancing(namespace) no tienen ningún efecto en la división automática.
sh.status.balancer.currently-enabledcurrently-enabledindicates if the balancer is currently enabled on the sharded cluster.
sh.status.balancer.currently-runningcurrently-runningindicates whether the balancer is currently running, and therefore currently balancing the cluster.
sh.status.balancer.collections-with-active-migrationscollections-with-active-migrationslists the names of any collections with active migrations, and specifies when the migration began. If there are no active migrations, this field will not appear in thesh.status()output.
sh.status.balancer.failed-balancer-rounds-in-last-5-attemptsfailed-balancer-rounds-in-last-5-attemptsdisplays the number of balancer rounds that failed, from among the last five attempted rounds. A balancer round will fail when a chunk migration fails.
sh.status.balancer.last-reported-errorlast-reported-errorlists the most recent balancer error message. If there have been no errors, this field will not appear in thesh.status()output.
sh.status.balancer.time-of-reported-errortime-of-reported-errorproporciona la fecha y hora del error más recientemente reportado.
sh.status.balancer.migration-results-for-the-last-24-hoursmigration-results-for-the-last-24-hoursmuestra el número de migraciones en las últimas 24 horas y los mensajes de error de las migraciones fallidas. Si no ha habido migraciones recientes,migration-results-for-the-last-24-hoursNo recent migrationsmuestra.migration-results-for-the-last-24-hoursincludes all migrations, including those not initiated by the balancer.
Databases
sh.status.databases._idThe
_iddisplays the name of the database.
sh.status.databases.partitionedA partir de MongoDB 6.0 y de la compatibilidad de características entre versiones (fCV) 6.0, la bandera
partitionedsolo mantiene compatibilidad retroactiva con versiones anteriores. Por defecto, todas las bases de datos están habilitadas para particionado, independientemente del valor departitioned.
sh.status.databases.primaryThe
primarydisplays the primary shard for the database.
sh.status.databases.versionThe
versiondisplays the version information for the database:{ "uuid" : UUID("cc250b66-8638-49f7-a2e8-c6f1220b9d7a"), "lastMod" : 1 } donde:
uuides el identificador de la base de datos.lastModes la versión de la base de datos.
Colección particionada
sh.status.databases.<collection>.shard-keyThe
shard-keydisplays the shard key specification document.
sh.status.databases.<collection>.uniqueThe
uniquedisplays whether MongoDB enforces uniqueness on the shard key values (i.e. whether the underlying shard key index is unique).
sh.status.databases.<collection>.balancingMuestra si el balanceador puede equilibrar la colección. Si el equilibrador está activado y este estado devuelve
true, el equilibrador incluirá esta colección en las operaciones de equilibrio. Si el estado devuelvefalse, esto indica que el balanceador no equilibra los datos en esta colección.
sh.status.databases.<collection>.allowMigrationsMuestra si se permiten migraciones para la colección. Cuando
true, la colección permite migraciones. Cuandofalse, la colección no permite migraciones, evitando la migración de fragmentos para esta colección. Utilizash.enableMigrations()ysh.disableMigrations()para controlar esta configuración.
sh.status.databases.<collection>.chunksThe
chunkslists all the shards and the number of chunks that reside on each shard.
sh.status.databases.<collection>.chunk-detailsEl enumera los detalles de los
chunk-detailsfragmentos []:1El rango de valores de la clave de partición que definen el fragmento,
La partición donde reside el fragmento, y
La última marca de tiempo modificada para el fragmento.
sh.status.databases.<collection>.tagThe
taglists the details of the tags associated with a range of shard key values.
Distribución de datos particionada
sh.status.shardedDataDistributionUn arreglo de documentos que proporciona métricas de distribución de datos para cada colección particionada en el clúster. Los datos son los mismos que los obtenidos en la etapa de agregación
$shardedDataDistribution.
sh.status.shardedDataDistribution.nsEl namespace de la colección particionada en el formato
<database>.<collection>.
sh.status.shardedDataDistribution.shardsUn arreglo de documentos que informan las métricas de distribución de datos para cada partición.
sh.status.shardedDataDistribution.shards.numOrphanedDocsEl número de documentos huérfanos en la partición.
sh.status.shardedDataDistribution.shards.numOwnedDocumentsEl número de documentos que posee la partición.
sh.status.shardedDataDistribution.shards.ownedSizeBytesEl tamaño estimado en bytes de los documentos pertenecientes a la partición cuando los documentos están descomprimidos.
sh.status.shardedDataDistribution.shards.orphanedSizeBytesEl tamaño estimado en bytes de los documentos huérfanos en la partición cuando los documentos no están comprimidos.
| [1] | (,1 2) La sección de colección fragmentada, por defecto, muestra la información de los fragmentos si el número total de fragmentos es menor 20 que. Para mostrar la información cuando tenga 20 o más fragmentos, llame a los métodos con sh.status() el verbose parámetro establecido en, es true sh.status(true)decir,. |