As collections no suporte do banco de dados config:
Sessões consistentes em termos de causa para standalones, conjuntos de réplicas e clusters fragmentados e gravações com possibilidade de nova tentativa para conjuntos de réplicas e clusters fragmentados.
Observação
Clusters fragmentados podem mostrar collection diferentes no reconhecimento de data center config , dependendo se você se conecta a mongos ou mongod:
On
mongos, theconfigdatabase shows collections located on the config servers, such ascollectionsorchunks.On
mongod, theconfigdatabase shows collections specific to the given shard, such asmigrationCoordinatorsorrangeDeletions.
Quando um servidor de configuração e um fragmento são hospedados no mesmo nó, mongos pode ter acesso a algumas collection locais do fragmento no reconhecimento de data center config .
Restrições
Starting in MongoDB 5.0, non-transaction reads are not allowed on the config.transactions collection with the following read concerns and options:
"majority"e a opção afterClusterTime está definidaAo usar um driver MongoDB e
"majority"em uma sessão causalmente consistente
Importante
O esquema do banco de dados do config é interno e pode mudar entre versões do MongoDB. O banco de dados config não é uma API confiável, e os usuários não devem gravar dados no banco de dados config durante a operação ou manutenção normal.
Observação
Não é possÃvel executar operações de leitura/gravação nas collections do banco de dados config em uma transação de vários documentos.
Collections para dar suporte a operações de cluster fragmentado
To access the config database and view the list of collections that support sharding operations, connect mongosh to a mongos instance in a sharded cluster and issue the following:
use config show collections
Observação
Se estiver executando com controle de acesso, certifique-se de ter privilégios que concedam a ação listCollections no banco de dados.
O banco de dados de configuração é principalmente para uso interno e, durante operações normais, você nunca deve inserir ou armazenar dados manualmente nele. No entanto, se você precisar verificar a disponibilidade de gravação do servidor de configuração para um cluster fragmentado, poderá inserir um documento em uma collection de teste (depois de verificar se nenhuma collection desse nome já existe):
Aviso
Modification of the config database on a functioning system may lead to instability or inconsistent data sets. If you must modify the config database, use mongodump to create a full backup of the config database.
db.testConfigServerWriteAvail.insertOne( { a : 1 } )
Se a operação for bem-sucedida, o servidor de configuração estará disponÃvel para processar gravações.
Versões futuras do servidor podem incluir collections diferentes no banco de dados de configuração, portanto, tenha cuidado ao selecionar um nome para sua collection de teste.
O MongoDB utiliza as seguintes collections no banco de dados do config para suportar a fragmentação:
config.changelogDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
changelogcollection stores a document for each change to the metadata of a sharded collection.Exemplo
The following example displays a single record of a chunk split from a
changelogcollection:{ "_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>" } } Each document in the
changelogcollection contains the following fields:config.changelog.clientAddrUma cadeia de caracteres que contém o endereço do cliente, uma instância
mongosque inicia essa alteração.
config.changelog.timeUm carimbo de data/hora ISODate que reflete quando a alteração ocorreu.
config.chunksDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
config.chunkscollection stores a document for each chunk in the cluster. The following example shows a document:{ _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' } ] } No documento:
_idé o identificador de parte.minemaxsão os intervalos de valores das chaves de fragmento da parte.shardé o nome do fragmento que armazena a parte no cluster.
Dica
To find the chunks in a collection, retrieve the collection's
uuididentifier from theconfig.collectionscollection. Then, useuuidto retrieve the matching document with the sameuuidfrom theconfig.chunkscollection.
config.collectionsDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
collectionscollection stores a document for each sharded collection in the cluster. Given a collection namedpetsin therecordsdatabase, a document in thecollectionscollection would resemble the following:{ "_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.indexesNovidades na versão 7.0.
Dica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
indexescollection stores a document for each global index available on a shard.Cada documento na collection contém os seguintes campos:
CampoTipo de DadosDescriçãonameString
Nome do Ãndice global.
keyPatternDocumento
Especificação da chave de Ãndice.
optionsDocumento
Fornece informações sobre as opções de Ãndice especificadas, incluindo se o Ãndice é um Ãndice global.
lastmodTimestamp
Registro de data/hora que fornece informações sobre quando o Ãndice foi modificado pela última vez e a versão do Ãndice.
collectionUUIDUUID
UUID da coleção fragmentada.
indexCollectionUUIDUUID
UUID da coleção secundária que rastreia o Ãndice global.
config.databasesDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
databasescollection stores a document for each database in the cluster.Para cada banco de dados, o documento correspondente exibe o nome, o primary shard do banco de dados, o status habilitado de fragmentação do banco de dados e uma versão.
{ "_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 } } O método
sh.status()retorna essas informações na seção Bancos de dados .
config.migrationCoordinatorsThe
migrationCoordinatorscollection exists on each shard and stores a document for each in-progress chunk migration from this shard to another shard. The chunk migration fails if the document cannot be written to a majority of the members of the shard's replica set.Quando uma migração é concluÃda, o documento que descreve a migração é excluÃdo da collection.
config.mongosDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
mongoscollection stores a document for eachmongosinstance affiliated with the cluster. The cluster maintains this collection for reporting purposes.Each document in the
mongoscollection contains these fields:CampoTipo de DadosDescrição_idString
O nome do host e a porta onde o
mongosestá sendo executado. O_idestá formatado como<hostname>:<port>.advisoryHostFQDNsArray de strings
Array dos FQDNs (Fully Qualified Domain Names, Nomes de domÃnio totalmente qualificados) do
mongos.createdData
Quando o
mongosfoi iniciado.Novidades na versão 5.2.
mongoVersionString
Versão do MongoDB que o
mongosestá executando.pingData
As instâncias
mongosenviam pings para o servidor de configuração a cada 30 segundos. Este campo indica a hora do último ping.upNúmero longo
Número de segundos em que
mongosesteve ativo desde o último ping.waitingBoolean
Esse campo é sempre
truee só é incluÃdo para fins de compatibilidade com versões anteriores.O documento a seguir mostra o status do
mongosem execução noexample.com:27017.[ { _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.placementHistoryDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
placementHistorycollection exists on the config server and records which shards contained data for a database or collection at specific cluster timestamps. MongoDB uses this information to reconstruct historical data placement.For a collection named
myCollectionin thetestdatabase, a document in theplacementHistorycollection would resemble the following:{ _id: ObjectId("61e0a1f4e5b8c9d0a1b2c3d4"), nss: "test.myCollection", collUuid: UUID("07c63242-51b3-460c-865f-a67b3372d792"), timestamp: Timestamp(1626895826, 1), shards: [ "shardA", "shardB" ] } O campo
nsspode conter um namespace ou um nome de banco de dados. O campocollUuidestá presente apenas para coleções.
config.rangeDeletionsThe
rangeDeletionscollection exists on each shard and stores a document for each chunk range that contains orphaned documents. The chunk migration fails if the document cannot be written to a majority of the members of the shard's replica set.Quando a faixa de chunks órfãos é limpa, o documento que descreve a faixa é excluÃdo da collection.
config.settingsDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
A coleção
settingscontém as seguintes configurações de sharding:Tamanho do intervalo. Para alterar o tamanho do intervalo, consulte Modificar o Tamanho do Intervalo em um Cluster Fragmentado. O valor
chunksizeespecificado está em megabytes.Configurações do Balanceador. Para alterar as configurações do balanceador, incluindo o status do balanceador, consulte Gerenciar balanceador de cluster fragmentado.
Autosplit:
A partir do MongoDB 6.0.3, a divisão automática de partes não é executada. Isso se deve a melhorias na polÃtica de balanceamento. Os comandos de divisão automática ainda existem, mas não executam uma operação.
Em versões anteriores ao MongoDB 6.1:
balancerStarttambém permite a divisão automática para o cluster fragmentado.balancerStoptambém desabilita a divisão automática para o cluster fragmentado.Para habilitar ou desabilitar o sinalizador de divisão automática, use o método
sh.enableAutoSplit()correspondente ou o métodosh.disableAutoSplit().
Documentos de exemplo na collection
settings:{ "_id" : "chunksize", "value" : 64 } { "_id" : "balancer", "mode" : "full", "stopped" : false }
config.shardsDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
A coleção
shardsrepresenta cada shard no cluster em um documento separado, como a seguir:{ "_id" : "shard0000", "host" : "localhost:30000", "state" : 1 } Se o shard for um conjunto de réplicas, o campo
hostexibirá o nome do conjunto de réplicas, depois uma barra e, em seguida, uma lista separada por vÃrgulas dos nomes de host de cada membro do conjunto de réplicas, como no exemplo a seguir:{ "_id" : "shard0001", "host" : "shard0001/localhost:27018,localhost:27019,localhost:27020", "state" : 1 } Se o shard tiver zonas atribuÃdas, este documento terá um campo
tags, que contém uma array das zonas à s quais está atribuÃdo, como no exemplo a seguir:{ "_id" : "shard0002", "host" : "localhost:30002", "state" : 1, "tags": [ "NYC" ] }
config.tagsDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
tagscollection holds documents for each zone range in the cluster. The documents in thetagscollection resemble the following:{ "_id" : { "ns" : "records.users", "min" : { "zipcode" : "10001" } }, "ns" : "records.users", "min" : { "zipcode" : "10001" }, "max" : { "zipcode" : "10281" }, "tag" : "NYC" }
config.versionDica
Metadados MongoDB internos
The config database is internal. Applications and administrators should not modify or depend on its content during normal operation.
The
versioncollection holds the current metadata version number. This collection contains only one document. For example:{ "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("5d8bc01a690d8abbd2014ddd") } To access the
versioncollection, you must use thedb.getCollection()method. For example, to retrieve the collection's document:db.getCollection("version").find()
Collections para apoiar sessões
O banco de dados config contém as coleções internas para oferecer suporte a sessões causalmente consistentes para autônomos, conjuntos de réplicas e clusters fragmentados, gravações repetÃveis e transações para conjuntos de réplicas e clusters fragmentados.
Aviso
Não modifique ou solte manualmente essas collections.
To access these collections for a mongod or mongos instance, connect mongosh to the instance.
config.system.sessionsA collection do
system.sessionsarmazena registros de sessão que estão disponÃveis para todos os membros do sistema.Quando um usuário cria uma sessão em uma instância
mongodoumongos, o registro da sessão existe inicialmente apenas na memória da instância. Periodicamente, a instância sincronizará suas sessões em cache com a collectionsystem.sessions; nesse momento, elas estarão visÃveis para todos os membros da implantação.Para visualizar registros na collection
system.sessions, utilize$listSessions.Aviso
Não modifique ou elimine manualmente a collection
system.sessions.Em um cluster fragmentado, a collection
system.sessionsé fragmentada.Ao adicionar um shard ao cluster fragmentado, se o shard a ser adicionado já contiver sua própria collection
system.sessions, o MongoDB soltará a collectionsystem.sessionsdo novo shard durante o processo de adição.
config.transactionsA collection
transactionsarmazena registros usados para suportar retryable writes e transações que podem ser repetidas para conjuntos de réplicas e cluster fragmentados .Aviso
Não modifique ou elimine manualmente a collection
transactions.