Página inicial do Docs → Iniciar e gerenciar o MongoDB → MongoDB Atlas
Restaurar dados arquivados
Importante
Recurso Indisponível em Instâncias sem Servidor
Neste momento, as instâncias sem servidor não permitem essa funcionalidade. Para saber mais, consulte Limitações de instância sem servidor.
Você pode restaurar dados arquivados em seu Atlas cluster. Você pode usar a sintaxe alternativa que a Atlas Data Federation fornece para o estágio de pipeline $merge para mover os dados de volta para o mesmo Atlas cluster, banco de dados ou coleção ou para diferentes dentro do mesmo projeto do Atlas.
Observação
Certifique-se de que seu cluster seja provisionado adequadamente para a quantidade de dados que será restaurada do seu arquivo para que ele não fique sem espaço durante ou após a restauração dos dados arquivados. Entre em contato com Obter Ajuda com Atlas para obter orientação técnica adicional sobre como configurar o tamanho do oplog ou para solucionar quaisquer problemas de espaço no seu Atlas cluster.
Esta página descreve como restaurar usando o estágio do pipeline $merge
.
Acesso obrigatório
Para seguir esse procedimento, você deve ter acessoProject Data Access Admin
ou superior ao projeto.
Procedimento
Pause o Online Archive associado à coleção cujos dados arquivados você deseja restaurar.
Consulte Pausar e retomar arquivamento para obter mais informações.
Conecte-se ao Online Archive usando a cadeia de conexão.
Consulte Conectar-se ao Online Archive para obter mais informações.
Use $merge
para mover os dados do seu arquivo para o Atlas cluster.
Para saber mais sobre a sintaxe e o uso do estágio do pipeline $merge
para mover os dados de volta para o Atlas cluster, consulte o estágio do pipeline $merge.
Exemplo
Considere os seguintes documentos em um arquivo S3:
{ "_id" : 1, "item": "cucumber", "source": "nepal", "released": ISODate("2016-05-18T16:00:00Z") } { "_id" : 2, "item": "miso", "source": "canada", "released": ISODate("2016-05-18T16:00:00Z") } { "_id" : 3, "item": "oyster", "source": "luxembourg", "released": ISODate("2016-05-18T16:00:00Z") } { "_id" : 4, "item": "mushroom", "source": "ghana", "released": ISODate("2016-05-18T16:00:00Z") }
Suponha que a sintaxe $merge
para restaurar estes documentos no Atlas cluster identifique documentos com base nos campos item
e source
durante a etapa $merge
.
db.<collection>.aggregate([ { "$merge": { "into": { "atlas": { "clusterName": "<atlas-cluster-name>", "db": "<db-name>", "coll": "<collection-name>" } }, "on": [ "item", "source" ], "whenMatched": "keepExisting", "whenNotMatched": "insert" } } ])
Neste exemplo, quando um documento arquivado corresponde a um documento no Atlas cluster nestes dois campos, o Atlas mantém o documento existente no cluster porque a cópia do documento no Atlas cluster é mais recente do que a cópia do documento no arquivo. Quando um documento arquivado não corresponde a nenhum documento no Atlas cluster, o Atlas insere o documento na coleção especificada no Atlas cluster.
Ao restaurar os dados de volta ao Atlas cluster, os dados arquivados podem ter campos _id
duplicados. Para este exemplo, podemos incluir um estágio $sort
para classificar os campos _id
e released
antes do estágio $merge
para garantir que o Atlas escolha os documentos com a data mais recente se houver duplicatas a serem resolvidas.
db.<collection>.aggregate([ { $sort: { "_id": 1, "released": 1, } }, { "$merge": { "into": { "atlas": { "clusterName": "<atlas-cluster-name>", "db": "<db-name>", "coll": "<collection-name>" } }, "on": [ "item", "source" ], "whenMatched": "keepExisting", "whenNotMatched": "insert" } } ])
Para saber mais sobre como resolver campos duplicados, consulte as $merge considerações.
Verifique os dados no Atlas cluster e exclua o arquivamento online.
Consulte Excluir um Online Archive para obter mais informações.