Docs Menu
Docs Home
/ /
Referencia

Config Database

Las colecciones de la config Soporte de base de datos:

  • Operaciones de clúster fragmentadas

  • Sesiones causalmente consistentes para instancias independientes, conjuntos de réplicas y clústeres fragmentados, y escrituras que se pueden volver a intentar para conjuntos de réplicas y clústeres fragmentados.

Nota

Los clústeres fragmentados pueden mostrar diferentes colecciones en la config base de datos, dependiendo de si se conecta a mongos mongodo:

Cuando un servidor de configuración y un fragmento están alojados en el mismo nodo, puede tener acceso a algunas colecciones locales del fragmento enmongos la config base de datos.

A partir de MongoDB,5.0 no se permiten lecturas que no sean transacciones en la config.transactions colección con las siguientes inquietudes y opciones de lectura:

Importante

El esquema de la config base de datos es interno y puede cambiar entre versiones de MongoDB. La config base de datos no es una API confiable, y los usuarios no deben escribir datos en la config base de datos durante el funcionamiento normal ni durante el mantenimiento.

Nota

No se pueden realizar operaciones de lectura/escritura en las colecciones de la base de datos config dentro de una Transacción multi-documento.

Para acceder a la config base de datos y ver la lista de colecciones que admiten operaciones de fragmentación, conecte mongosh a una instancia en un clúster fragmentado y emita lo mongos siguiente:

use config
show collections

Nota

Si se ejecuta con control de acceso, asegúrese de tener privilegios que otorguen listCollections la acción en la base de datos.

La base de datos de configuración es principalmente para uso interno, y durante las operaciones normales nunca se deben insertar ni almacenar datos manualmente. Sin embargo, si necesita verificar la disponibilidad de escritura del servidor de configuración para un clúster fragmentado, puede insertar un documento en una colección de prueba (tras asegurarse de que no exista ninguna colección con ese nombre):

Advertencia

Modificar la config base de datos en un sistema en funcionamiento puede provocar inestabilidad o conjuntos de datos incoherentes. Si debe modificar la config base de datos, utilice para crear una copia de seguridad completa de mongodump la config base de datos.

db.testConfigServerWriteAvail.insertOne( { a : 1 } )

Si la operación tiene éxito, el servidor de configuración estará disponible para procesar escrituras.

Es posible que las futuras versiones del servidor incluyan diferentes colecciones en la base de datos de configuración, así que tenga cuidado al seleccionar un nombre para su colección de prueba.

MongoDB utiliza las siguientes colecciones en la base de datos config para admitir la fragmentación:

config.changelog

Tip

Metadatos internos de MongoDB

La colección almacena un documento por cada cambio en los metadatos de una colección changelog fragmentada.

Ejemplo

El siguiente ejemplo muestra un solo registro de un fragmento dividido de una changelog colección:

{
"_id" : "<hostname>-<timestamp>-<increment>",
"server" : "<hostname><:port>",
"clientAddr" : "127.0.0.1:63381",
"time" : ISODate("2012-12-11T14:09:21.039Z"),
"what" : "split",
"ns" : "<database>.<collection>",
"details" : {
"before" : {
"min" : {
"<database>" : { $minKey : 1 }
},
"max" : {
"<database>" : { $maxKey : 1 }
},
"lastmod" : Timestamp(1000, 0),
"lastmodEpoch" : ObjectId("000000000000000000000000")
},
"left" : {
"min" : {
"<database>" : { $minKey : 1 }
},
"max" : {
"<database>" : "<value>"
},
"lastmod" : Timestamp(1000, 1),
"lastmodEpoch" : ObjectId(<...>)
},
"right" : {
"min" : {
"<database>" : "<value>"
},
"max" : {
"<database>" : { $maxKey : 1 }
},
"lastmod" : Timestamp(1000, 2),
"lastmodEpoch" : ObjectId("<...>")
},
"owningShard" : "<value>"
}
}

Cada documento de la colección contiene los siguientes changelog campos:

config.changelog._id

El valor de changelog._id es: <hostname>-<timestamp>-<increment>.

config.changelog.server

El nombre de host del servidor que contiene estos datos.

config.changelog.clientAddr

Una cadena que contiene la dirección del cliente, una instancia que inicia este mongos cambio.

config.changelog.time

Una marca de tiempo ISODate que refleja cuándo ocurrió el cambio.

config.changelog.what

El tipo de cambio registrado. Los valores posibles incluyen:

  • dropCollection

  • dropCollection.start

  • dropDatabase

  • dropDatabase.start

  • moveChunk.start

  • moveChunk.commit

  • split

  • multi-split

config.changelog.ns

Espacio de nombres donde se produjo el cambio.

config.changelog.details

Un documento que contiene detalles adicionales del cambio. La estructura del documento depende del tipo de details cambio.

config.chunks

La colección almacena un documento por cada fragmento del clúster. El siguiente ejemplo muestra un config.chunks documento:

{
_id: ObjectId('65a954c0de11596e08e7c1dc'),
uuid: UUID('a4479215-a38d-478f-a82b-e5e95d455e55'),
min: { a: Long('121204345') },
max: { a: Long('993849349') },
shard: 'shard01',
lastmod: Timestamp({ t: 1, i: 0 }),
history: [
{
validAfter: Timestamp({ t: 1705596095, i: 14 }),
shard: 'shard01'
}
]
}

En el documento:

  • _id es el identificador del fragmento.

  • min y max son el rango de valores para la clave del fragmento del fragmento.

  • shard es el nombre del fragmento que almacena el fragmento en el clúster.

Tip

Para encontrar los fragmentos de una colección, recupera el uuid identificador de la colección. Luego,config.collections usa uuid para recuperar el documento coincidente con el mismo uuid de la config.chunks colección.

config.collections

La colección almacena un documento por cada colección fragmentada del clúster. Dada una colección collections llamada pets en la records base de datos, un documento en la colección se vería collections así:

{
"_id" : "records.pets",
"lastmod" : ISODate("2021-07-21T15:48:15.193Z"),
"timestamp": Timestamp(1626882495, 1),
"key" : {
"a" : 1
},
"unique" : false,
"lastmodEpoch" : ObjectId("5078407bd58b175c5c225fdc"),
"uuid" : UUID("f8669e52-5c1b-4ea2-bbdc-a00189b341da")
}
config.databases

La colección almacena un documento para cada base de datos del databases clúster.

Para cada base de datos, el documento correspondiente muestra el nombre, el fragmento principal de la base de datos, el estado de fragmentación habilitada de la base de datos y una versión.

{ "_id" : "test", "primary" : "shardA", "partitioned" : true, "version" : { "uuid" : UUID("516a5f79-5eb9-4844-8ee9-b8e9de91b760"), "timestamp" : Timestamp(1626894204, 1), "lastMod" : 1 } }
{ "_id" : "hr", "primary" : "shardA", "partitioned" : false, "version" : { "uuid" : UUID("8e39d61d-6259-4c33-a5ed-bcd2ae317b6f"), "timestamp" : Timestamp(1626895015, 1), "lastMod" : 1 } }
{ "_id" : "reporting", "primary" : "shardB", "partitioned" : false, "version" : { "uuid" : UUID("07c63242-51b3-460c-865f-a67b3372d792"), "timestamp" : Timestamp(1626895826, 1), "lastMod" : 1 } }

El método devuelve esta sh.status() información en la sección Bases de datos.

config.migrationCoordinators

La colección existe en cada fragmento migrationCoordinators y almacena un documento por cada migración de fragmento en curso de este fragmento a otro. La migración de fragmentos falla si el documento no puede escribirse en la mayoría de los miembros del conjunto de réplicas del fragmento.

Cuando se completa una migración, el documento que describe la migración se elimina de la colección.

config.mongos

La colección almacena mongos mongos un documento por cada instancia afiliada al clúster. El clúster mantiene esta colección para fines de generación de informes.

Cada documento de la colección contiene estos mongos campos:

Campo
Tipo de dato
Descripción

_id

String

El nombre de host y el puerto donde se ejecuta.mongos El _id tiene el <hostname>:<port> formato.

advisoryHostFQDNs

Arreglo de cadenas

Matriz de los mongos nombres de dominio completos (FQDN) de.

created

fecha

Cuando se inició mongos el.

Nuevo en la versión 5.2.

mongoVersion

String

Versión de MongoDB que está mongos ejecutando.

ping

fecha

mongos instancias envían pings al servidor de configuración cada 30 segundos. Este campo indica la hora del último ping.

up

Número largo

Número de segundos que ha estado activo desde el último mongos ping.

waiting

Booleano

Este campo siempre es true y solo se incluye por compatibilidad con versiones anteriores.

El siguiente documento muestra el estado del que se mongos ejecuta example.com:27017 en.

[
{
_id: 'example.com:27017',
advisoryHostFQDNs: [ "example.com" ],
created: ISODate("2021-11-22T16:32:13.708Z"),
mongoVersion: "5.2.0",
ping: ISODate("2021-12-15T22:09:23.161Z"),
up: Long("2007429"),
waiting: true
}
]
config.rangeDeletions

La colección existe en cada fragmento y almacena un documento por cada rango de fragmentos que contiene documentos huérfanos. La migración de fragmentos falla si el documento no puede escribirse en la mayoría de los miembros del conjunto de réplicas del rangeDeletions fragmento.

Cuando se limpia el rango de fragmentos huérfanos, el documento que describe el rango se elimina de la colección.

config.settings

La colección contiene las siguientes configuraciones de settings fragmentación:

  • Tamaño del rango. Para cambiar el tamaño del rango, consulte Modificar el tamaño del rango en un clúster fragmentado. El chunksize valor especificado está en megabytes.

  • Configuración del balanceador. Para cambiar la configuración del balanceador, incluido su estado, consulte Administrar el balanceador de clúster fragmentado.

  • Autosplit:

    A partir de MongoDB,6.0.3 la división automática de fragmentos no se realiza. Esto se debe a mejoras en la política de balanceo. Los comandos de división automática aún existen, pero no realizan ninguna operación. Para más información, consulte Cambios en la política de balanceo.

    En versiones de MongoDB anteriores a 6.0:

Documentos de ejemplo en la colección settings:

{ "_id" : "chunksize", "value" : 64 }
{ "_id" : "balancer", "mode" : "full", "stopped" : false }
config.shards

La colección representa cada fragmento del clúster en un documento separado, como en el shards siguiente:

{ "_id" : "shard0000", "host" : "localhost:30000", "state" : 1 }

Si el fragmento es un conjunto de réplicas, el campo host muestra el nombre del conjunto de réplicas, luego una barra y luego una lista separada por comas de los nombres de host de cada miembro del conjunto de réplicas, como en el siguiente ejemplo:

{ "_id" : "shard0001", "host" : "shard0001/localhost:27018,localhost:27019,localhost:27020", "state" : 1 }

Si el fragmento tiene zonas asignadas, este documento tiene un tags campo, que contiene una matriz de las zonas a las que está asignado, como en el siguiente ejemplo:

{ "_id" : "shard0002", "host" : "localhost:30002", "state" : 1, "tags": [ "NYC" ] }
config.tags

La colección contiene documentos para cada rango tags tags de zona del clúster. Los documentos de la colección son similares a los siguientes:

{
"_id" : { "ns" : "records.users", "min" : { "zipcode" : "10001" } },
"ns" : "records.users",
"min" : { "zipcode" : "10001" },
"max" : { "zipcode" : "10281" },
"tag" : "NYC"
}
config.version

La version colección contiene el número de versión actual de los metadatos. Esta colección contiene solo un documento. Por ejemplo:

{ "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("5d8bc01a690d8abbd2014ddd") }

Para acceder a la colección version, debe utilizar el método db.getCollection(). Por ejemplo, para recuperar el documento de la colección:

db.getCollection("version").find()

La config base de datos contiene las colecciones internas para soportar sesiones causalmente consistentes para instancias independientes, conjuntos de réplicas y clústeres fragmentados, y escrituras y transacciones que se pueden volver a intentar para conjuntos de réplicas y clústeres fragmentados.

Advertencia

No modifique ni elimine estas colecciones manualmente.

Para acceder a estas colecciones para una mongod mongos instancia o, conecte mongosh a la instancia.

config.system.sessions

La colección system.sessions almacena registros de sesión que están disponibles para todos los miembros de la implementación.

Cuando un usuario crea una sesión en una instancia o, el registro de la sesión existe inicialmente solo en la memoria de la instancia. Periódicamente, la instancia sincronizará sus sesiones en caché con mongod mongos la system.sessions colección; en ese momento, serán visibles para todos los miembros de la implementación.

Para ver registros en la system.sessions colección,$listSessions utilice.

Advertencia

No modifique ni elimine manualmente la colección system.sessions.

En un clúster fragmentado, la colección system.sessions está fragmentada.

Al agregar un fragmento al clúster fragmentado, si el fragmento a agregar ya contiene su propia colección system.sessions, MongoDB elimina la colección system.sessions del nuevo fragmento durante el proceso de adición.

config.transactions

La transactions colección almacena registros utilizados para admitir escrituras y transacciones reintentables para conjuntos de réplicas y clústeres fragmentados.

Advertencia

No modifique ni elimine manualmente la colección transactions.

Volver

Solucionar problemas de clústeres fragmentados

En esta página