Exemplos do mongorestore
Nesta página
- Restaurar com controle de acesso
- Restaurar uma coleção
- Restaurar coleções com curingas
- Alterar os namespaces da coleção durante a restauração
- Copiar/Clonar um banco de dados
- Restaurar de um arquivo compactado
- Restaurar a partir de dados compactados
- Restaurar uma coleção de séries temporais
- Conecte-se a um cluster MongoDB Atlas usando as credenciais AWS IAM
- Criar e restaurar arquivos de backup consistentes
- Saiba mais
Esta página mostra exemplos para mongorestore
.
Execute mongorestore
na linha de comando do sistema, não no shell mongo
.
Restaurar com controle de acesso
No exemplo a seguir, mongorestore
restaura de /opt/backup/mongodump-2011-10-24
para uma instância mongod
em execução na porta 27017
no host mongodb1.example.net
. A string --uri
omite a senha do usuário para que mongorestore
solicite a senha.
mongorestore --uri="mongodb://user@mongodb1.example.net:27017/?authSource=admin" /opt/backup/mongodump-2011-10-24
Como alternativa, você pode especificar o host, a porta, o nome de usuário e o banco de dados de autenticação usando --host
, --port
, --username
e --authenticationDatabase
. Omita --password
para que mongorestore
solicite a senha:
mongorestore --host=mongodb1.example.net --port=27017 --username=user --authenticationDatabase=admin /opt/backup/mongodump-2011-10-24
Restaurar uma coleção
Para restaurar uma coleção específica, utilize --nsInclude
, passando o namespace completo (<database>.<collection>
) da coleção.
O exemplo a seguir restaura a coleção denominada purchaseorders
no banco de dados test
a partir dos arquivos correspondentes localizados no diretório dump/
.
mongorestore --nsInclude=test.purchaseorders dump/
O mongorestore
gera os resultados, incluindo o número de documentos restaurados:
2019-06-28T19:23:42.858-0400 preparing collections to restore from 2019-06-28T19:23:42.858-0400 reading metadata for test.purchaseorders from dump/test/purchaseorders.metadata.json 2019-06-28T19:23:42.893-0400 restoring test.purchaseorders from dump/test/purchaseorders.bson 2019-06-28T19:23:42.896-0400 restoring indexes for collection test.purchaseorders from metadata 2019-06-28T19:23:42.991-0400 finished restoring test.purchaseorders (6 documents, 0 failures) 2019-06-28T19:23:42.991-0400 6 document(s) restored successfully. 0 document(s) failed to restore.
Se o diretório dump/
não contiver os arquivos de dados correspondentes para o namespace especificado, nenhum dado será restaurado:
2019-07-08T14:39:57.121-0400. preparing collections to restore from 2019-07-08T14:39:57.121-0400 0 document(s) restored successfully. 0 document(s) failed to restore.
Como alternativa, você pode restaurar uma coleção específica usando --db
, --collection
e um arquivo.bson
:
mongorestore --db=test --collection=purchaseorders dump/test/purchaseorders.bson
2019-06-30T12:21:44.777-0400 checking for collection data in dump/test/purchaseorders.bson 2019-06-30T12:21:44.779-0400 reading metadata for test.purchaseorders from dump/test/purchaseorders.metadata.json 2019-06-30T12:21:44.813-0400 restoring test.purchaseorders from dump/test/purchaseorders.bson 2019-06-30T12:21:44.881-0400 restoring indexes for collection test.purchaseorders from metadata 2019-06-30T12:21:44.987-0400 finished restoring test.purchaseorders (6 documents, 0 failures) 2019-06-30T12:21:44.987-0400 6 document(s) restored successfully. 0 document(s) failed to restore.
Restaurar coleções com curingas
--nsInclude
e --nsExclude
admitem a especificação dos namespaces que você deseja incluir ou excluir de uma operação de restauração utilizando asteriscos como curingas.
O exemplo a seguir restaura os documentos no subdiretório dump/
do diretório atual que correspondem ao padrão de namespace especificado. A instrução --nsInclude
especifica a restauração apenas dos documentos no banco de dados transactions
, enquanto --nsExclude
instrui mongorestore
a excluir coleções cujos nomes terminem com _dev
. mongorestore
restaura os dados para a instância mongod
em execução na interface localhost na porta 27017
.
mongorestore --nsInclude='transactions.*' --nsExclude='transactions.*_dev' dump/
Alterar os namespaces da coleção durante a restauração
Para alterar o namespace da coleção que você está restaurando, utilize as opções --nsFrom
e --nsTo
.
As opções --nsFrom
e --nsTo
permitem o uso de asteriscos como curingas e o uso de cifrões para delimitar variáveis "curingas" a serem usadas na substituição.
Considere um banco de dados data
que você exportou para um diretório do dump/
utilizando mongodump
. O banco de dados do data
contém as seguintes coleções:
sales_customer1
sales_customer2
sales_customer3
users_customer1
users_customer2
users_customer3
Usando --nsFrom
e --nsTo
, você pode restaurar os dados em namespaces diferentes. A seguinte operação
restaura as coleções do
sales_<customerName>
no banco de dados dodata
para as coleções dosales
no banco de dados do<customerName>
erestaura as coleções
users_<customerName>
nas coleçõesusers
no banco de dados<customerName>
.
mongorestore --nsInclude="data.*" --nsFrom="data.$prefix$_$customer$" --nsTo="$customer$.$prefix$"
Copiar/Clonar um banco de dados
A partir da versão 4.2, o MongoDB remove o comando copydb
e o comando clone
obsoletos.
Como alternativa, os usuários podem usar mongodump
e mongorestore
(com as mongorestore
opções --nsFrom
e --nsTo
).
Por exemplo, para copiar o banco de dados do test
de uma instância local executando na porta padrão 27017 para o banco de dados do examples
na mesma instância, você pode:
Utilize o
mongodump
para despejar o banco de dados dotest
para um arquivomongodump-test-db
:mongodump --archive="mongodump-test-db" --db=test Use
mongorestore
com--nsFrom
e--nsTo
para restaurar (com alteração do nome do banco de dados) a partir do arquivo:mongorestore --archive="mongodump-test-db" --nsFrom="test.*" --nsTo="examples.*"
Dica
Inclua opções adicionais conforme necessário, como especificar o uri ou host, o nome de usuário, a senha e o banco de dados de autenticação.
Restaurar de um arquivo compactado
Para restaurar de um arquivo morto, execute o mongorestore
com a nova opção --archive
e o nome do arquivo morto.
mongorestore --archive=test.20150715.archive
Restaurar um banco de dados de um arquivo de arquivo
Para restaurar de um arquivo morto, execute o mongorestore
com a nova opção --archive
e o nome do arquivo morto. Por exemplo, a seguinte operação restaura o banco de dados test
do arquivo test.20150715.archive
.
mongorestore --archive=test.20150715.archive --nsInclude="test.*"
Restaurar a partir de dados compactados
mongorestore
pode restaurar a partir de arquivos compactados ou arquivos compactados criados pelo mongodump
.
Para restaurar a partir de um diretório de despejo que contenha arquivos compactados, execute mongorestore
com a opção --gzip
. Por exemplo, a seguinte operação restaura o banco de dados test
a partir dos arquivos compactados localizados no diretório padrão de dump
:
mongorestore --gzip --nsInclude="test.*" dump/
Para restaurar a partir de um arquivo compactado, execute mongorestore
com a opção --gzip
e a opção --archive
. Por exemplo, a seguinte operação restaura o banco de dados test
do arquivo test.20150715.gz
.
mongorestore --gzip --archive=test.20150715.gz --nsInclude="test.*"
Para alterar o namespace da coleção que você está restaurando, use as opções --nsFrom
e --nsTo
com a opção --gzip
.
mongorestore --gzip --nsFrom="data.$prefix$_$customer$" --nsTo="$customer$.$prefix$"
Restaurar uma coleção de séries temporais
Utilize o mongosh
para criar uma coleção de séries temporais. Este exemplo utiliza o banco de dados test
padrão:
db.createCollection( "weather", { timeseries: { timeField: "timestamp", metaField: "metadata", granularity: "hours" } } )
Insira documentos de série temporal na coleção:
db.weather.insertMany( [ { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T00:00:00.000Z"), "temp": 12 }, { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T04:00:00.000Z"), "temp": 11 }, { "metadata": { "sensorId": 5578, "type": "temperature" }, "timestamp": ISODate("2021-05-18T08:00:00.000Z"), "temp": 11 } ] )
A partir do seu terminal, utilize o mongodump
para exportar a coleção de séries temporais para o diretório dump/test
. Estes comandos adicionam system.buckets.weather.bson
e weather.metadata.json
ao diretório:
mongodump --db=test
Use mongorestore
para restaurar os dados para o namespace mongorestore.weather
:
mongorestore --host localhost --port 27017 --nsFrom="test.*" --nsTo="mongorestore.*" dump/
Observação
Você não pode restaurar o arquivo system.buckets.weather.bson
sozinho. Tentar fazer isso resulta em erro.
Conecte-se a um cluster MongoDB Atlas usando as credenciais AWS IAM
Novidades na versão 100.1.0.
Para conectar-se a um MongoDB Atlas cluster do que foi configurado para suportar autenticação por meio de credenciais do Amazon Web Services IAM, forneça um connection string
a mongorestore
semelhante ao seguinte:
mongorestore 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
A conexão ao Atlas usando credenciais AWS IAM dessa maneira usa o MONGODB-AWS
authentication mechanism
e o $external
authSource
, como mostrado neste exemplo.
Se estiver usando um token de sessão da AWS, forneça-o também com o valor AWS_SESSION_TOKEN
authMechanismProperties
, como segue:
mongorestore 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>
Observação
Se o ID da chave de acesso da AWS, a chave de acesso secreta ou o token de sessão incluírem os seguintes caracteres:
: / ? # [ ] @
esses caracteres devem ser convertidos usando codificação percentual.
Como alternativa, a ID da chave de acesso da AWS, a chave de acesso secreta e, opcionalmente, o token de sessão podem ser fornecidos fora da string de conexão usando as opções --username
, --password
e --awsSessionToken
, desta forma:
mongorestore 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>
Quando fornecidos como parâmetros da linha de comando, estas três opções não exigem codificação percentual.
Você também pode definir essas credenciais em sua plataforma usando variáveis de ambiente padrão do AWS IAM. mongorestore
verifica as seguintes variáveis de ambiente quando você usa o MONGODB-AWS
authentication mechanism
:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
Se definidas, essas credenciais não precisam ser especificadas na string de conexão ou por meio de suas opções explícitas.
Observação
Se você optar por usar as variáveis de ambiente da AWS para especificar esses valores, não poderá combinar e corresponder com as opções explícitas ou de cadeia de conexão correspondentes para essas credenciais. Use as variáveis de ambiente para ID de chave de acesso e chave de acesso secreta (e token de sessão, se usado) ou especifique cada uma delas usando as opções explícitas ou de cadeia de conexão.
O exemplo a seguir define essas variáveis de ambiente no shell bash
:
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
A sintaxe para definir variáveis de ambiente em outros shells será diferente. Consulte a documentação da sua plataforma para obter mais informações.
Você pode verificar se essas variáveis de ambiente foram definidas com o seguinte comando:
env | grep AWS
Depois de definido, o exemplo a seguir se conecta a um MongoDB Atlas cluster usando estas variáveis de ambiente:
mongorestore 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
Criar e restaurar arquivos de backup consistentes
Para criar um arquivo de backup mongodump
consistente usando entradas de oplog, use a opção mongodump --oplog
. Para restaurar dados do arquivo de backup, use a opção mongorestore --oplogReplay
.
O oplog contém o histórico das operações de gravação do banco de dados.
mongodump
saídas:
Documentos, metadados e opções da coleção.
Definições de índice.
Gravações que ocorrem durante a execução do
mongodump
, se--oplog
for especificado.
Use o mongodump com a opção oplog
mongodump --oplog
cria um arquivo denominado oplog.bson
no nível superior do diretório de saída do mongodump
. O arquivo contém operações de gravação que ocorrem durante a execução do mongodump
. As gravações que ocorrem após a conclusão mongodump
não são registradas no arquivo.
Para fazer backup de clusters fragmentados com mongodump
, consulte Fazer backup de um cluster fragmentado autogerenciado com um descarte de banco de dados.
Use mongorestore com opção oplogReplay
Para restaurar entradas de oplog do arquivo oplog.bson
, use mongorestore --oplogReplay
. Use mongodump --oplog
junto com mongorestore --oplogReplay
para garantir que o banco de dados esteja atualizado e tenha todas as gravações que ocorreram durante a execução do mongodump
.
Saiba mais
Faça backup e restaure um sistema autogerenciado com ferramentas MongoDB
Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados
utilitário mongosync para migrações de cluster para cluster
Migrar ou importar dados no Atlas