mongorestore
Nesta página
Esta documentação é para a versão 100.10.0
de mongorestore
.
Synopsis
O programa mongorestore
carrega dados de um despejo de banco de dados binário criado pelo mongodump
ou da entrada padrão em uma instância mongod
ou mongos
.
Você pode restaurar os arquivos BSON gerados do mongodump
para implantações do MongoDB que estejam executando a mesma versão principal ou versão de compatibilidade de recursos da implantação de origem.
Execute mongorestore
na linha de comando do sistema, não no shell mongo
.
O MongoDB não consegue executar simultaneamente vários programas mongorestore
para a mesma coleção.
Importante
Você não pode usar mongorestore
com uma collection que usa Queryable Encryption.
Você pode usar o MongoDB Database Tools para migrar de uma implantação auto-hospedada para o MongoDB Atlas. MongoDB Atlas é o serviço totalmente gerenciado para implantações do MongoDB na nuvem. Para saber mais, consulte Seed com mongorestore.
Para saber todas as maneiras de migrar para o MongoDB Atlas, consulte Migrar ou importar dados.
Sintaxe
mongorestore
sintaxe:
mongorestore <options> <connection-string> <directory or file to restore>
Por exemplo, para restaurar de um diretório dump
para uma instância mongod
local em execução na porta 27017
:
mongorestore dump/
À medida que o mongorestore
é restaurado a partir do diretório dump/
, ele cria o banco de dados e as collection conforme necessário e registra seu progresso:
2019-07-08T14:37:38.942-0400 preparing collections to restore from 2019-07-08T14:37:38.944-0400 reading metadata for test.bakesales from dump/test/bakesales.metadata.json 2019-07-08T14:37:38.944-0400 reading metadata for test.salaries from dump/test/salaries.metadata.json 2019-07-08T14:37:38.976-0400 restoring test.salaries from dump/test/salaries.bson 2019-07-08T14:37:38.985-0400 no indexes to restore 2019-07-08T14:37:38.985-0400 finished restoring test.salaries (10 documents, 0 failures) 2019-07-08T14:37:39.009-0400 restoring test.bakesales from dump/test/bakesales.bson 2019-07-08T14:37:39.011-0400 restoring indexes for collection test.bakesales from metadata 2019-07-08T14:37:39.118-0400 finished restoring test.bakesales (21 documents, 0 failures) 2019-07-08T14:37:39.118-0400 restoring users from dump/admin/system.users.bson 2019-07-08T14:37:39.163-0400 restoring roles from dump/admin/system.roles.bson 2019-07-08T14:37:39.249-0400 31 document(s) restored successfully. 0 document(s) failed to restore.
Você também pode restaurar uma collection ou collections específicas a partir do diretório dump/
. Por exemplo, a seguinte operação restaura uma única collection de arquivos de dados correspondentes no diretório dump/
:
mongorestore --nsInclude=test.purchaseorders dump/
Se o diretório dump/
não contiver o arquivo de dados correspondente para o namespace especificado, nenhum dado será restaurado. Por exemplo, o seguinte especifica um namespace da collection que não tem dados correspondentes no diretório dump/
:
mongorestore --nsInclude=foo.bar dump/
O mongorestore
gera as seguintes mensagens:
2019-07-08T14:38:15.142-0400 preparing collections to restore from 2019-07-08T14:38:15.142-0400 0 document(s) restored successfully. 0 document(s) failed to restore.
Para obter mais exemplos, consulte Exemplos de mongorestore.
Opções
--verbose, -v
Aumenta a quantidade de relatórios internos retornados no resultado padrão ou em arquivos de registro. Aumente a verbosidade com o formulário
-v
incluindo a opção várias vezes (por exemplo,-vvvvv
.)
--quiet
Executa
mongorestore
em um modo silencioso que tenta limitar a quantidade de resultado.Esta opção suprime:
saída de comandos do banco de dados
atividade de replicação
eventos aceitos de conexão
eventos fechados de conexão
--config=<filename>
Novidades na versão 100.3.0.
Especifica o caminho completo para um arquivo de configuração YAML contendo valores sensíveis para as seguintes opções para
mongorestore
:Esta é a maneira recomendada de especificar uma senha para
mongorestore
, além de especificá-la por meio de um prompt de senha.O arquivo de configuração recebe o seguinte formulário:
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password> Especificar uma senha para o campo
password:
e fornecer uma cadeia de conexão no campouri:
que contém uma senha conflitante resultará em um erro.Certifique-se de proteger este arquivo com permissões de sistema de arquivos apropriadas.
Observação
Se você especificar um arquivo de configuração com
--config
e também usar a opção--password
,--uri
ou--sslPEMKeyPassword
paramongorestore
, cada opção de linha de comando, substituirá a opção correspondente no arquivo de configuração.
--uri=<connectionString>
Especifica a string de conexão resolvível da implantação do MongoDB, entre aspas:
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" A partir da versão
100.0
domongorestore
, a string de conexão pode ser fornecida como um parâmetro posicional, sem usar a opção--uri
:mongorestore mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] Como parâmetro posicional, a connection string pode ser especificada em qualquer ponto da linha de comando, desde que comece com
mongodb://
oumongodb+srv://
. Por exemplo:mongorestore --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl Somente uma string de conexão pode ser fornecida. A tentativa de incluir mais de uma, seja usando a opção
--uri
ou como um argumento posicional, resultará em um erro.Para obter informações sobre os componentes da string de conexão, consulte a documentação Formato de URI da string de conexão .
Observação
Como alternativa, alguns componentes na
connection string
podem ser especificados usando suas próprias opções explícitas de linha de comando, como--username
e--password
. Fornecer uma string de conexão e, ao mesmo tempo, usar uma opção explícita e especificar informações conflitantes resultará em um erro.Observação
Se estiver usando
mongorestore
no Ubuntu 18.04, você poderá ver uma mensagem de errocannot unmarshal DNS
ao usar strings de conexão SRV (no formatomongodb+srv://
) com a opção--uri
. Nesse caso, use uma das seguintes opções:a opção
--uri
com uma string de conexão não SRV (no formuláriomongodb://
)a opção
--host
para especificar o host e conectar diretamente
Aviso
Em alguns sistemas, uma senha fornecida em uma string de conexão com a opção
--uri
pode ser visível para programas de status do sistema comops
que podem ser invocados por outros usuários. Em vez disso, considere:omitindo a senha na cadeia de conexão para receber um prompt de senha interativo , ou
utilizando a opção
--config
para especificar um arquivo de configuração que contém a senha.
--host=<hostname><:port>, -h=<hostname><:port>
Padrão: localhost:27017
Especifica o nome de host resolvível do sistema MongoDB. Por padrão,
mongorestore
tenta se conectar a uma instância do MongoDB em execução no host local na porta número27017
.Para se conectar a um conjunto de réplicas, especifique o
replSetName
e uma lista de sementes de nós do conjunto, como a seguir:--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> Ao definir o formato da lista de conjuntos de réplicas,
mongorestore
sempre se conecta ao primário.Você também pode se conectar a qualquer membro da réplica definida especificando o host e a porta de apenas esse membro:
--host=<hostname1><:port> Se você usar IPv6 e o formato
<address>:<port>
, deverá incluir a parte de uma combinação de endereço e porta entre colchetes (por exemplo,[<address>]
).Outra opção é especificar o nome do host diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--host
e especificar informações conflitantes resultará em um erro.
--port=<port>
Padrão: 27017
Especifica a porta TCP na qual a instância do MongoDB escuta conexões de cliente.
Alternativamente, você também pode especificar a porta diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--port
e especificar informações conflitantes resultará em um erro.
--ssl
Habilita a conexão com um
mongod
oumongos
que tenha suporte a TLS/SSL habilitado.Alternativamente, você também pode configurar o suporte de TLS/SSL diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--ssl
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--sslCAFile=<filename>
Especifica o arquivo
.pem
que contém a sequência de certificados raiz da autoridade de certificação. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.Como alternativa, você também pode especificar o arquivo
.pem
diretamente noURI connection string
. Fornecer uma string de conexão e, ao mesmo tempo, usar--sslCAFile
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--sslPEMKeyFile=<filename>
Especifica o arquivo
.pem
que contém o certificado e a chave TLS/SSL. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.Esta opção é exigida ao utilizar a opção
--ssl
para conectar a ummongod
oumongos
que tenhaCAFile
habilitado semallowConnectionsWithoutCertificates
.Como alternativa, você também pode especificar o arquivo
.pem
diretamente noURI connection string
. Fornecer uma string de conexão e, ao mesmo tempo, usar--sslPEMKeyFile
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--sslPEMKeyPassword=<value>
Especifica a senha para descriptografar o arquivo de chave de certificado (ou seja,
--sslPEMKeyFile
). Utilize a opção--sslPEMKeyPassword
somente se o arquivo da chave de certificado for criptografado. Em todos os casos, omongorestore
eliminará a senha de todas as saídas de log e relatórios.Se a chave privada no arquivo PEM estiver criptografada e você não especificar a opção
--sslPEMKeyPassword
, omongorestore
solicitará uma senha. Consulte a página Senha do Certificado TLS/SSL.Como alternativa, você também pode especificar a senha diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--sslPEMKeyPassword
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
Aviso
Em alguns sistemas, uma senha fornecida diretamente utilizando a opção
--sslPEMKeyPassword
pode ser visível para programas de status do sistema comops
que podem ser invocados por outros usuários. Considere utilizar a opção--config
para especificar um arquivo de configuração contendo a senha.
--sslCRLFile=<filename>
Especifica o arquivo
.pem
que contém a lista de certificados revogados. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--sslAllowInvalidCertificates
Ignora as verificações de validação de certificados de servidor e permite o uso de certificados inválidos. Ao usar a configuração
allowInvalidCertificates
, o MongoDB registra como aviso o uso do certificado inválido.Aviso
Embora disponível, evite utilizar a opção
--sslAllowInvalidCertificates
se possível. Se o uso do--sslAllowInvalidCertificates
for necessário, use a opção somente em sistemas em que a intrusão não seja possível.Conectar-se a uma instância
mongod
oumongos
sem validar os certificados do servidor é um risco potencial à segurança. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/SSL, consulte--sslAllowInvalidHostnames
.Como alternativa, você também pode desativar a validação do certificado diretamente no
URI connection string
. Fornecer uma string de conexão e, ao mesmo tempo, usar--sslAllowInvalidCertificates
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--sslAllowInvalidHostnames
Desabilita a validação dos nomes de host em certificados TLS/SSL. Permite que o
mongorestore
se conecte às instâncias do MongoDB mesmo que o nome do host em seus certificados não corresponda ao nome de host especificado.Outra opção é desabilitar a validação do nome de host diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--sslAllowInvalidHostnames
e especificar informações conflitantes resultará em um erro.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar mongod e mongos para TLS/SSL e Configuração TLS/SSL para clientes.
--username=<username>, -u=<username>
Especifica um nome de usuário com o qual autenticar em um banco de dados MongoDB que usa autenticação. Utilize em conjunto com as opções
--password
e--authenticationDatabase
.Alternativamente, você também pode especificar o nome de usuário diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--username
e especificar informações conflitantes resultará em um erro.Se estiver se conectando a um cluster do MongoDB Atlas usando o
MONGODB-AWS
authentication mechanism
, você pode especificar seu ID de chave de acesso da AWS em:esse campo,
o
connection string
, oua variável de ambiente
AWS_ACCESS_KEY_ID
.
Consulte Conecte-se a um cluster do MongoDB Atlas usando as credenciais AWS IAM para ver um exemplo de cada um.
--password=<password>, -p=<password>
Especifica uma senha com a qual autenticar em um MongoDB database que usa autenticação. Utilize em conjunto com as opções
--username
e--authenticationDatabase
.Para solicitar a senha ao usuário, passe a opção
--username
sem--password
ou especifique uma string vazia como o valor--password
, como em--password=""
.Como alternativa, você também pode especificar a senha diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--password
e especificar informações conflitantes resultará em um erro.Se estiver se conectando a um cluster do MongoDB Atlas usando o
MONGODB-AWS
authentication mechanism
, você pode especificar sua chave de acesso secreta da AWS em:esse campo,
o
connection string
, oua variável de ambiente
AWS_SECRET_ACCESS_KEY
.
Consulte Conecte-se a um cluster do MongoDB Atlas usando as credenciais AWS IAM para ver um exemplo de cada um.
Aviso
Em alguns sistemas, uma senha fornecida diretamente utilizando a opção
--password
pode ser visível para programas de status do sistema comops
que podem ser invocados por outros usuários. Em vez disso, considere:omitindo a opção
--password
para receber uma solicitação de senha interativa, ouutilizando a opção
--config
para especificar um arquivo de configuração que contém a senha.
--awsSessionToken=<AWS Session Token>
Se você se conectar a um cluster do MongoDB Atlas usando o
MONGODB-AWS
authentication mechanism
e usando tokens de sessão além do ID da chave de acesso Amazon Web Services e da chave de acesso do secret do Kubernetes, você poderá especificar o token da sessão da Amazon Web Services em:esse campo,
o parâmetro
AWS_SESSION_TOKEN
authMechanismProperties
para oconnection string
, oua variável de ambiente
AWS_SESSION_TOKEN
.
Consulte Conecte-se a um cluster do MongoDB Atlas usando as credenciais AWS IAM para ver um exemplo de cada um.
Válido somente ao utilizar o
MONGODB-AWS
authentication mechanism
.
--authenticationDatabase=<dbname>
Especifica o banco de dados de autenticação onde o
--username
especificado foi criado. Consulte Banco de dados de autenticação.Se estiver usando o GSSAPI (Kerberos), PLAIN (LDAP SASL) ou
MONGODB-AWS
authentication mechanisms
, você deverá definir--authenticationDatabase
como$external
.Como alternativa, você também pode especificar o banco de dados de autenticação diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--authenticationDatabase
e especificar informações conflitantes resultará em um erro.
--authenticationMechanism=<name>
Padrão: SCRAM-SHA-1
Especifica o mecanismo de autenticação que a instância do
mongorestore
utiliza para autenticar nomongod
oumongos
.Alterado na versão 100.1.0: A partir da versão
100.1.0
, omongorestore
adiciona suporte ao mecanismo de autenticaçãoMONGODB-AWS
ao se conectar a um cluster do MongoDB Atlas.ValorDescriçãoRFC 5802 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a função de hash SHA-1.RFC 7677 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a função de hash SHA-256.
Exige featureCompatibilityVersion definido para
4.0
.Autenticação de certificado TLS/SSL do MongoDB.MONGODB-AWS
Autenticação externa usando credenciais da AWS IAM para uso na conexão com um cluster do MongoDB Atlas. Consulte Conectar-se a um cluster do MongoDB Atlas usando Credenciais AWS IAM.
Novidades na versão 100.1.0.
GSSAPI (Kerberos)Autenticação externa usando Kerberos. Esse mecanismo está disponível somente no MongoDB Enterprise.PLAIN (LDAP SASL)Autenticação externa usando LDAP. Você também pode utilizar oPLAIN
para autenticar usuários do banco de dados.PLAIN
transmite senhas em texto simples. Esse mecanismo está disponível apenas no MongoDB Enterprise.Alternativamente, você também pode especificar o mecanismo de autenticação diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--authenticationMechanism
e especificar informações conflitantes resultará em um erro.
--gssapiServiceName=<serviceName>
Especifique o nome do serviço utilizando GSSAPI/Kerberos. Obrigatório apenas se o serviço não usar o nome padrão
mongodb
.Esta opção está disponível apenas no MongoDB Enterprise.
--gssapiHostName=<hostname>
Especifique o nome de host de um serviço utilizando GSSAPI/Kerberos. Somente necessário se o nome de host de uma máquina não corresponder ao nome de host resolvido pelo DNS.
Esta opção está disponível apenas no MongoDB Enterprise.
--db=<database>, -d=<database>
Especifica o banco de dados de destino para
mongorestore
restaurar dados ao restaurar a partir de um arquivo BSON. Se o banco de dados não existir, omongorestore
criará o banco de dados. Por exemplo, o seguinte exemplo restaura a coleçãosalaries
no banco de dadosreporting
.mongorestore --db=reporting dump/test/salaries.bson Se você não especificar
--db
, omongorestore
lerá o nome do banco de dados a partir dos arquivos de dados.O uso das opções
--db
e--collection
é preterido ao restaurar a partir de um diretório ou arquivo compactado. Em vez disso, para restaurar a partir de um arquivo ou de um diretório, consulte--nsInclude
em vez disso.Alternativamente, você também pode especificar o banco de dados diretamente no
URI connection string
. Fornecer uma string de conexão ao mesmo tempo em que usa--db
e especificar informações conflitantes resultará em um erro.
--collection=<collection>, -c=<collection>
Especifica o nome da collection de destino do
mongorestore
para restaurar dados ao realizar restaurações a partir de um arquivo BSON. Se você não especificar--collection
,mongorestore
usará o nome da coleção do nome do arquivo de entrada. Se o arquivo de entrada tiver uma extensão, o MongoDB a omitirá do nome da collection.mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson O uso das opções
--db
e--collection
é preterido ao restaurar a partir de um diretório ou arquivo compactado. Em vez disso, para restaurar a partir de um arquivo ou de um diretório, consulte--nsInclude
em vez disso.
--nsExclude=<namespace pattern>
Especifica um padrão de namespace (por exemplo
"test.myCollection"
,"reporting.*"
,"dept*.bar"
) para excluir os namespaces correspondentes da restauração. No padrão, você pode utilizar asteriscos*
como curingas. Para obter um exemplo do padrão curinga, consulte Restaurar collections usando curingas.Você pode especificar
--nsExclude
várias vezes para excluir vários padrões de namespace.Se você especificar ambos
--nsExclude
e--nsInclude
, o padrão que o--nsExclude
especifica terá precedência. Por exemplo, se você especificar--nsExclude="prod.*"
e--nsInclude="prod.trips"
, nenhuma coleção do namespaceprod
será restaurada.
--nsInclude=<namespace pattern>
Especifica um padrão de namespace (por exemplo
"test.myCollection"
,"reporting.*"
,"dept*.bar"
) para restaurar apenas os namespaces que correspondem ao padrão. No padrão, você pode utilizar asteriscos*
como curingas. Para obter um exemplo do padrão curinga, consulte Restaurar collections usando curingas.Você pode especificar
--nsInclude
várias vezes para incluir múltiplos padrões de namespace.Se o diretório ou arquivo de origem (ou seja, o diretório/arquivo do qual você está restaurando os dados) não contiver arquivos de dados que correspondam ao padrão de namespace, nenhum dado será restaurado.
Para nomes de coleção que contêm caracteres não-ascii, o
mongodump
gera os nomes de arquivo correspondentes com nomes codificados por porcentagem. No entanto, para restaurar essas coleções, não use os nomes codificados. Em vez disso, use o namespace com caracteres não-ascii.Por exemplo, se o diretório de despejo contiver
dump/test/caf%C3%A9s.bson
, especifique--nsInclude "test.cafés"
.Se você especificar ambos
--nsExclude
e--nsInclude
, o padrão que o--nsExclude
especifica terá precedência. Por exemplo, se você especificar--nsExclude="prod.*"
e--nsInclude="prod.trips"
, nenhuma coleção do namespaceprod
será restaurada.
--nsFrom=<namespace pattern>
Utilize com
--nsTo
para renomear um namespace durante a operação de restauração. O--nsFrom
especifica a collection no arquivo de despejo, enquanto o--nsTo
especifica o nome que deve ser utilizado no banco de dados restaurado.--nsFrom
aceita um padrão de namespace como argumento. O padrão de namespace permite que--nsFrom
referencie qualquer namespace que corresponda ao padrão especificado.mongorestore
corresponde à menor ocorrência válida do padrão de namespace.Para substituições simples, use asteriscos (
*
) como curingas. Evite todos os asteriscos literais e barras invertidas com uma barra invertida. As substituições correspondem linearmente às correspondências: cada asterisco em--nsFrom
deve corresponder a um asterisco em--nsTo
, e o primeiro asterisco em--nsFrom
corresponde ao primeiro asterisco emnsTo
.Para substituições mais complexas, use cifrões para delimitar uma variável "curinga" a ser usada na substituição. Alterar Namespaces de Coleção Durante a Restauração fornece um exemplo de substituições complexas com curingas delimitados por cifrão.
Ao contrário das substituições com asteriscos, as substituições com curingas delimitados por cifrões não precisam ser lineares.
--nsTo=<namespace pattern>
Utilize com
--nsFrom
para renomear um namespace durante a operação de restauração.--nsTo
especifica o novo nome da coleção a ser usado no banco de dados restaurado, enquanto--nsFrom
especifica o nome no arquivo de despejo.--nsTo
aceita um padrão de namespace como argumento. O padrão de namespace permite que--nsTo
referencie qualquer namespace que corresponda ao padrão especificado.mongorestore
corresponde à menor ocorrência válida do padrão de namespace.Para substituições simples, use asteriscos (
*
) como curingas. Evite todos os asteriscos literais e barras invertidas com uma barra invertida. As substituições correspondem linearmente às correspondências: cada asterisco em--nsFrom
deve corresponder a um asterisco em--nsTo
, e o primeiro asterisco em--nsFrom
corresponde ao primeiro asterisco emnsTo
.Para substituições mais complexas, use cifrões para delimitar uma variável "curinga" a ser usada na substituição. Alterar Namespaces de Coleção Durante a Restauração fornece um exemplo de substituições complexas com curingas delimitados por cifrão.
Ao contrário das substituições com asteriscos, as substituições com curingas delimitados por cifrões não precisam ser lineares.
--objcheck
Força
mongorestore
a validar todas as solicitações de clientes após o recebimento para garantir que os clientes nunca insiram documentos inválidos no banco de dados. Para objetos com um alto grau de aninhamento de subdocumentos,--objcheck
pode ter um pequeno impacto no desempenho.
--drop
Antes de restaurar as coleções a partir do backup despejado, elimine as coleções do banco de dados de destino.
--drop
não descarta coleções que não estão no backup.Quando a restauração inclui o banco de dados
admin
,mongorestore
com--drop
remove todas as credenciais de usuário e as substitui pelos usuários definidos no arquivo de despejo. Portanto, em sistemas comauthorization
habilitado, omongorestore
deve ser capaz de autenticar para um usuário existente e para um usuário definido no arquivo de despejo. Se omongorestore
não puder autenticar para um usuário definido no arquivo de despejo, o processo de restauração falhará, deixando um banco de dados vazio.Se uma coleção for descartada e recriada como parte da restauração, a coleção recém-criada terá um UUID diferente a menos que o
--drop
seja utilizado com--preserveUUID
.
--preserveUUID
As coleções restauradas usam o UUID a partir dos dados de restauração em vez de criar um novo UUID para as coleções que são descartadas e recriadas como parte da restauração.
Para usar
--preserveUUID
, você também deve incluir a opção--drop
.
--dryRun
Executa o
mongorestore
sem realmente importar quaisquer dados, devolvendo as informações resumidas domongorestore
. Utilize com--verbose
para produzir informações resumidas mais detalhadas.
--oplogReplay
Depois de restaurar o despejo do banco de dados, reproduz as entradas oplog de um arquivo
oplog.bson
.Para aplicar entradas de oplog do arquivo
oplog.bson
na restauração, usemongorestore --oplogReplay
. Você pode usarmongodump --oplog
commongorestore --oplogReplay
para garantir que os dados estejam atuais e tenham todas as gravações que ocorreram durante a operação de despejo.mongorestore
procura qualquer fonte válida para o arquivo bson nos seguintes locais:O nível superior do diretório de despejo, como no caso de um despejo criado com
mongodump --oplog
.O caminho especificado por
--oplogFile
.<dump-directory>/local/oplog.rs.bson
, como no caso de um despejo daoplog.rs
coleçãolocal
do em um que é um nó de um conjunto demongod
réplicas.
Se houver um arquivo
oplog.bson
no nível superior do diretório de despejo e um caminho especificado por--oplogFile
,mongorestore
retornará um erro.Se houver um arquivo
oplog.bson
no nível superior do diretório de despejo, omongorestore
restaura este arquivo como o oplog. Se também houver arquivos bson no diretóriodump/local
, omongorestore
restaura como coleções normais.Se você especificar um arquivo oplog usando
--oplogFile
,mongorestore
restaurará esse arquivo como o oplog. Se também houver arquivos BSON no diretóriodump/local
,mongorestore
os restaura como coleções normais.A seguinte mensagem na saída do replay do oplog mostra o número de inserções antes do replay do oplog. Ela não inclui inserções realizadas durante o replay.
0 document(s) restored successfully. 0 document(s) failed to restore. Para obter um exemplo de
--oplogReplay
, consulte Usar um arquivo de oplog para fazer backup e restaurar dados.Observação
Ao utilizar o
mongorestore
com--oplogReplay
para restaurar um conjunto de réplicas, você deve restaurar um despejo completo de um nó do conjunto de réplicas criado utilizandomongodump --oplog
.mongorestore
com--oplogReplay
falhará se você usar qualquer uma das opções a seguir para limitar os dados a serem restaurados:
--oplogLimit=<timestamp>
Impede que
mongorestore
aplique entradas de oplog com registro de data e hora mais recente ou igual a<timestamp>
. Especifique os valores de<timestamp>
na forma de<time_t>:<ordinal>
, em que<time_t>
são os segundos desde a UNIX epoch, e<ordinal>
representa um contador de operações no oplog que ocorreram no segundo especificado.Aviso
Use
oplogLimit
com cuidado: especificar manualmente as entradas de oplog a serem aplicadas pode causar corrupção e inconsistências nos dados restaurados.Você deve usar
--oplogLimit
em conjunto com a opção--oplogReplay
.
--oplogFile=<path>
Especifica o caminho para o arquivo oplog que contém dados de oplog para a restauração. Use com
--oplogReplay
.Se você especificar
--oplogFile
e houver um arquivooplog.bson
no nível superior do diretório de despejo, omongorestore
retornará um erro.Aviso
Use
oplogFile
com cuidado: especificar manualmente as entradas de oplog a serem aplicadas pode causar corrupção e inconsistências nos dados restaurados.
--convertLegacyIndexes
Novidades na versão 100.0.0.
Remove quaisquer opções de índice inválidas especificadas na saída
mongodump
correspondente e reescreve quaisquer valores de chave de índice herdados para usar valores válidos.Opções de índice inválidas são quaisquer opções especificadas para um índice que não estejam listadas como um campo válido para o comando
createIndexes
. Por exemplo,name
ecollation
são válidos, mas umcustom_field
arbitrário não é. Com--convertLegacyIndexes
especificado, todas as opções de índice inválidas encontradas são descartadas.Os valores da chave de índice herdados são quaisquer valores para o tipo de índice que não são mais compatíveis. Por exemplo,
1
e-1
são valores de chave de índice válidos, mas0
ou uma string vazia são valores herdados. Com--convertLegacyIndexes
especificado, quaisquer valores da chave do índice herdados que são encontrados, são reescritos como1
. Os valores de string não vazios não são substituídos.
Sem a opção
--convertLegacyIndexes
especificada, a presença de opções de índice inválidas ou valores de chave de índice legados pode fazer com que a compilação do índice falhe.Se a opção
--noIndexRestore
for especificada paramongorestore
, a opção--convertLegacyIndexes
será ignorada.
--keepIndexVersion
Impede que o
mongorestore
atualize o índice para a versão mais recente durante o processo de restauração.
--noIndexRestore
Impede que
mongorestore
restaure e crie índices conforme especificado na saídamongodump
correspondente.
--fixDottedHashIndex
Cria todos os índices com hash em campos pontilhados como índices ascendentes de campo único no banco de dados de destino.
--noOptionsRestore
Impede que
mongorestore
defina as opções de collection, como as especificadas pelocollMod
comando de banco de dados , em collections restauradas.
--restoreDbUsersAndRoles
Restaure as definições de usuário e função para o banco de dados específico. Consulte Coleção system.roles e Coleção system.users para obter mais informações.
Observação
A opção
--restoreDbUsersAndRoles
não pode ser usada se especificar o banco de dadosadmin
para a opção--db
e tentar fazer isso resultará em um erro. Restaurar o banco de dados doadmin
especificando--db admin
paramongorestore
já restaura todos os usuários e funções.
--writeConcern=<document>
Padrão: maioria
Especifica a write concern para cada operação de gravação que
mongorestore
executa.Especifique a preocupação de gravação como um documento com opções w:
--writeConcern="{w:'majority'}" Se a write concern também estiver incluída no
--uri connection string
, a linha de comando--writeConcern
substitui a write concern especificada na string URI.
--maintainInsertionOrder
Padrão: false
Se especificado, o
mongorestore
insere os documentos na ordem de sua aparência na origem de entrada. Ou seja, tanto a ordem do lote de gravação em massa quanto a ordem do documento dentro dos lotes são mantidas.A especificação
--maintainInsertionOrder
também permite--stopOnError
e definenumInsertionWorkersPerCollection
para 1.Se não especificado, o
mongorestore
poderá executar as inserções em uma ordem arbitrária.
--numParallelCollections=<int>, -j=<int>
Padrão: 4
O número de collections que o
mongorestore
deve restaurar em paralelo.Se você especificar
-j
ao restaurar uma única collection,-j
mapeará para a opção--numInsertionWorkersPerCollection
em vez de--numParallelCollections
.
--numInsertionWorkersPerCollection=<int>
Padrão: 1
Especifica o número de trabalhadores de inserção para executar simultaneamente por coleção.
Para grandes importações, aumentar o número de trabalhadores de inserção pode aumentar a velocidade da importação.
--stopOnError
Força
mongorestore
a interromper a restauração quando encontrar um erro.Por padrão, o
mongorestore
continua quando encontra erros de validação de documentos e chave duplicados. Para garantir que o programa pare nestes erros, especifique--stopOnError
.
--bypassDocumentValidation
Permite que
mongorestore
ignore a validação do documento durante a operação. Isso permite inserir documentos que não atendam aos requisitos de validação.
--gzip
Restaura de arquivos compactados ou fluxo de dados criado por
mongodump --gzip
Para restaurar a partir de um diretório de despejo que contém arquivos compactados, execute
mongorestore
com a opção--gzip
.Para restaurar a partir de um arquivo de arquivo compactado, execute o
mongorestore
com as opções--gzip
e--archive
.
--archive=<file>
Restaura a partir do arquivo especificado ou, se o arquivo não for especificado, a partir da entrada padrão (
stdin
):.Para restaurar de um arquivo morto, execute o
mongorestore
com a opção--archive
e o nome do arquivo mortoPara restaurar a partir da entrada padrão, execute
mongorestore
com a opção--archive
, mas omitir o nome do arquivo.
<path>
O caminho do diretório ou nome do arquivo BSON do qual restaurar os dados.
Você não pode especificar o argumento
<path>
e a opção--dir
, que também define o diretório de despejo, paramongorestore
.
--dir=string
Especifica o diretório de despejo.
Não é possível especificar a opção
--dir
e o argumento<path>
, que também especifica o diretório de despejo, paramongorestore
.Você não pode utilizar a opção
--archive
com a opção--dir
.
--compressors=<string>
Especifica o algoritmo de compressão utilizado entre o servidor MongoDB e o
mongorestore
. Você pode usar um ou mais destes valores para a opção--compressors
:snappy
zlib
zstd
Se você especificar vários algoritmos de compressão, o
mongorestore
utilizará o primeiro na lista suportado pelo seu sistema do MongoDB .Para obter mais informações sobre compressores, consulte a documentação de compactação de rede do driver Go.