Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBMongoDB 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 .

Para seguir esse procedimento, você deve ter acessoProject Data Access Admin ou superior ao projeto.

1

Consulte Pausar e retomar arquivamento para obter mais informações.

2

Consulte Conectar-se ao Online Archive para obter mais informações.

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.

4

Consulte Excluir um Online Archive para obter mais informações.

← Faça backup de dados do Online Archive