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

Config Database

Las colecciones en el config soporte de bases de datos:

  • Operaciones del clúster fragmentado

  • Sesiones causalmente coherentes para autónomos, sets de réplicas y clústeres fragmentados y escrituras reintentables para sets de réplicas y clústeres fragmentados.

Nota

Los clústeres compartidos pueden mostrar diferentes colecciones en la base de datos config, dependiendo de si se conectan a mongos o a mongod:

  • En mongos, la base de datos config muestra colecciones ubicadas en los servidores de configuración, como collections o chunks.

  • mongodEl, la config base de datos muestra colecciones específicas del fragmento determinado, como migrationCoordinators rangeDeletionso.

Cuando un servidor de configuración y una partición se alojan en el mismo nodo, mongos puede tener acceso a algunas colecciones locales de la partición en la base de datos config.

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 base de datos config es interno y puede cambiar entre versiones de MongoDB. La base de datos config no es una API confiable, y los usuarios no deben guardar datos en la base de datos config durante la operación o el mantenimiento normales.

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 la acción listCollections en la base de datos.

La base de datos de configuración es principalmente para uso interno y durante las operaciones normales nunca deberías insertar o almacenar datos manualmente en ella. Sin embargo, si necesitas verificar la disponibilidad de escritura del servidor de configuración para un clúster particionado, puedes insertar un documento en una colección de prueba (después de asegurarte de que no exista ya una 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 está disponible para procesar guardados.

Las futuras versiones del servidor pueden incluir diferentes colecciones en la base de datos de configuración, así que tenga cuidado al seleccionar un nombre para su colección de pruebas.

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

config.changelog

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección changelog almacena un documento para cada modificación en los metadatos de una colección particionada.

Ejemplo

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

{
"_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 en la colección changelog contiene los siguientes 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 string que contiene la dirección del cliente, una instancia de mongos que inicia este 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

namespace 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

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección config.chunks almacena un documento para cada fragmento en el clúster. El siguiente ejemplo muestra un 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 de partición del fragmento.

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

Tip

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

config.collections

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

A partir de MongoDB 8.0, config.collections almacena metadatos para todas las colecciones fragmentadas y para las colecciones no fragmentadas trasladadas con moveCollection.

En versiones de MongoDB anteriores a 8.0, config.collections solo almacena metadatos para colecciones fragmentadas.

config.collections Solo almacena metadatos sobre las colecciones, no sobre los documentos almacenados en las colecciones.

Para una colección llamada pets en la records base de datos, un documento en la colección se parecería al collections siguiente:

{
"_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.csrs.indexes

Nuevo en la versión 7.0.

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección indexes almacena un documento para cada índice global disponible en una partición.

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

Campo
Tipo de dato
Descripción

name

String

Nombre del índice global.

keyPattern

Documento

Especificación de clave de índice.

options

Documento

Proporciona información sobre opciones de índice especificadas, incluyendo si el índice es un índice global.

lastmod

Marca de tiempo

Marca de tiempo que proporciona información sobre cuándo se modificó el índice por última vez y la versión del índice.

collectionUUID

UUID

UUID de la colección particionada.

indexCollectionUUID

UUID

UUID de la colección secundaria que rastrea el índice global.

config.databases

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

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

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

{ "_id" : "test", "primary" : "shardA", "version" : { "uuid" : UUID("516a5f79-5eb9-4844-8ee9-b8e9de91b760"), "timestamp" : Timestamp(1626894204, 1), "lastMod" : 1 } }
{ "_id" : "hr", "primary" : "shardA", "version" : { "uuid" : UUID("8e39d61d-6259-4c33-a5ed-bcd2ae317b6f"), "timestamp" : Timestamp(1626895015, 1), "lastMod" : 1 } }
{ "_id" : "reporting", "primary" : "shardB", "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 migrationCoordinators colección se encuentra en cada partición y almacena un documento para cada fragmento en proceso de migración desde esta partición a otra partición. La migración del fragmento falla si el documento no puede ser escrito en la mayoría de los miembros del set de réplicas de la partición.

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

config.mongos

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

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 del host y el puerto donde se ejecuta el mongos. El _id tiene el formato <hostname>:<port>.

advisoryHostFQDNs

Arreglo de cadenas

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

created

fecha

Cuando se inició el mongos.

Nuevo en la versión 5.2.

mongoVersion

String

Versión de MongoDB en la que se ejecuta el mongos.

ping

fecha

Las instancias mongos envían pings al servidor de configuración cada 30 segundos. Este campo indica la última vez que se realizó el 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 sólo 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 rangeDeletions existe en cada partición y almacena un documento para cada rango de segmentos que contiene documentos huérfanos. La migración del fragmento falla si el documento no puede ser escrito en la mayoría de los miembros del set de réplicas de la partición.

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

config.settings

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

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

  • 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.

  • Ajustes del balanceador. Para cambiar la configuración del balanceador, incluido el estado del balanceador, consulta Administrar el balanceador del clúster fragmentado.

  • Autosplit:

    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:

Documentos de ejemplo en la colección settings:

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

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección shards representa cada partición en el clúster en un documento separado, como se muestra a continuación:

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

Si la partición es un set de réplicas, el campo host muestra el nombre del set de réplicas, luego una barra diagonal, luego una lista separada por comas de los nombres de host de cada nodo del set 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

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección tags contiene documentos para cada rango de zona en el clúster. Los documentos en la colección tags se asemejan a lo siguiente:

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

Tip

Metadatos internos de MongoDB

La base de datos de configuración es interna. Las aplicaciones y los administradores no deben modificar ni depender de su contenido durante la operación normal.

La colección version contiene el número de versión actual de los metadatos. Esta colección contiene un solo 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 modifiques manualmente ni descartes estas colecciones.

Para acceder a estas colecciones desde una mongod o una mongos instancia, conecta mongosh a la instancia.

config.system.sessions

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

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

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

Advertencia

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

En un clúster particionado, la system.sessions colección está particionada.

Al añadir una partición al clúster, si la partición a añadir ya contiene su propia colección system.sessions, MongoDB descarta la colección system.sessions de la nueva partición durante el proceso de adición.

config.transactions

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

Advertencia

No modifique manualmente ni elimine la colección transactions.

Volver

Referencia

En esta página