Comportamento, acesso e uso do mongorestore
Aviso
Despejo de dados e restauração de conflitos com prefixo $ em campos
A partir do MongoDB 5.0, os nomes dos campo do documento podem ser prefixados com um caractere de dólar ($
). No entanto, mongodump
e mongorestore
não funcionarão com nomes de campo prefixados com um caractere de dólar nas opções de uma coleção.
O MongoDB Extended JSON (v2) não consegue diferenciar entre os wrappers de tipo e os campos que têm o mesmo nome dos wrappers de tipo. Não use formatos JSON estendidos se a representação BSON correspondente puder incluir chaves de prefixo $
. O mecanismo DBRefs é uma exceção a esta regra geral.
Comportamento
Restaurar para a versão do servidor correspondente
Ao usar mongorestore
para carregar arquivos de dados criados por mongodump
, as versões do MongoDB das implantações de origem e destino devem ser:
A mesma versão principal.
A mesma versão de compatibilidade do recurso.
Por exemplo, se o seu dump foi criado a partir de uma implantação do MongoDB executando a versão 4.4
, a implantação do MongoDB para a qual você restaurou também deve executar a versão 4.4
ou ter seu FCV definido como 4.4
.
Para alterar sua versão de compatibilidade do recurso, consulte setFeatureCompatibilityVersion
.
Observação
É possível restaurar os arquivos BSON gerados no mongodump
para implantações do MongoDB que estejam executando a mesma versão ou a versão mais recente da implantação de origem. No entanto, restaurar arquivos para uma implantação rodando numa versão mais recente não é a maneira recomendada de atualizar sua implantação. Para aprender a fazer upgrade de sua implantação, consulte a documentação sobre fazer upgrade.
Essa garantia não se aplica a arquivos de metadados, arquivamento ou reprodução de oplog. Se você tentar restaurar estes arquivos utilizando diferentes versões de implantação de origem e destino, o processo mongorestore
poderá resultar em falha, falha silenciosa ou metadados corrompidos.
Além disso, você deve usar a mesma versão do mongorestore
para carregar os arquivos de dados como a versão do mongodump
usada para criá-los. Por exemplo, se você usou o mongodump
versão 100.10.0
para criar o despejo, use a mongorestore
versão 100.10.0
para restaurá-lo.
Inserir apenas
mongorestore
pode criar um novo banco de dados de dados ou adicionar dados a um banco de banco de dados existente. No entanto, mongorestore
executa apenas inserções e não executa atualizações. Se você restaurar documentos em um banco de banco de dados e coleção existentes e documentos existentes tiverem o mesmo campo de valor _id
que os documentos a serem restaurados, mongorestore
não substituirá esses documentos.
Ordem do documento
Por padrão, mongorestore
pode inserir documentos em uma ordem aleatória. Para preservar a ordem do documento durante o processo de restauração, use --maintainInsertionOrder
.
Reconstrua os índices
mongorestore
recria índices registrados pelo mongodump
após restaurar os dados.
Observação
Para instalações MongoDB com featureCompatibilityVersion
(fCV) definidas como "4.0"
ou anterior, a criação de índices ocorrerá um erro se uma chave de índice em um documento existente exceder o limite.
Para evitar esse problema, considere usar índices com hash ou indexar um valor calculado. Para resolver o problema de índice após restaurar os dados, você pode desabilitar a validação de comprimento da chave de índice padrão no banco de banco de dados de destino configurando o parâmetro mongod
da instância do failIndexKeyTooLong
para falso.
Excluir system.profile
Coleção
mongorestore
não restaura os dados da coleção system.profile
.
DICAS
mongorestore
cria automaticamente conexões compatíveis com FIPS para um mongod
/mongos
configurado para usar o modo FIPS.
Escreva preocupação
Se você especificar a preocupação de gravação na opção --writeConcern
e também na string de conexão --uri
, o valor --writeConcern
substituirá a preocupação de gravação especificada no URI da string.
Coleções de Time Series
A partir do MongoDB 5.0, você pode usar mongorestore
para restaurar coleções de séries temporais. Para obter detalhes, consulte Restaurar uma coleção de séries temporais.
Usando mongorestore
em clusters de nível gratuito e compartilhado do Atlas
Em clusters de nível gratuito (M0
) e compartilhado (M2
e M5
) do Atlas, as seguintes limitações se aplicam:
Não é possível executar
mongorestore
no banco de dadosadmin
. Por padrão,mongorestore
ignora esse banco de dados. Se você usar a opção--db
para configurar o banco de dados de destino paraadmin
, o programa retornará um erro.Você não pode usar as seguintes opções com o programa
mongorestore
:
Observação
Rollbacks de cluster de destino
Se o cluster sofrer uma reversão durante o processo de restauração, exclua todos os dados restaurados ou importados e refaça o processo desde o início. Consulte a documentação de reversão para obter mais detalhes.
Acesso necessário
Para restaurar dados para uma implantação do MongoDB que tem o controle de acesso habilitado, a função restore
fornece os privilégios necessários para restaurar dados de backups se os dados não incluírem dados da coleção system.profile
e você executar o mongorestore
sem a opção --oplogReplay
.
Se os dados de backup incluírem dados de coleçãosystem.profile
ou se você executar mongorestore
com a opção --oplogReplay
, precisará de privilégios adicionais:
system.profile | Se os dados do backup incluírem dados de coleção Ambas as funções integradas |
--oplogReplay | Para executar com Conceda somente aos usuários que devem executar |
Uso na estratégia de backup
Standalones/Conjunto de Réplicas
Para uma visão geral do uso do mongorestore
como parte de uma estratégia de backup e recuperação, consulte Fazer Backup e Restaurar com o MongoDB Tools.
Clusters fragmentados
Para usar mongodump
e mongorestore
como uma estratégia de backup para clusters fragmentados, consulte Fazer backup de um cluster fragmentado autogerenciado com um descarte de banco de dados.
Os clusters fragmentados também podem usar um dos seguintes processos coordenados de backup e restauração, que garantem a atomicidade entre fragmentos e, ao mesmo tempo, aceitam gravações: