Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/

Exportar Snapshots de Backup em Nuvem

Nesta página

  • Serviços de armazenamento suportados
  • Como o Atlas exporta snapshots
  • Formato de Dados Exportado
  • Limitações
  • Acesso necessário
  • Pré-requisitos
  • Gerenciamento de Exportação

Observação

Esta funcionalidade não está disponível para M0 clusters gratuitos e clusters flexíveis. Para saber mais sobre quais funcionalidades não estão disponíveis, consulte Limites do Atlas M0 (cluster gratuito), M2 e M.5

O Atlas permite exportar seus snapshots do Cloud Backup para um serviço de armazenamento de objeto .

Para saber como gerenciar políticas e agendamentos de backup automatizado, consulte Gerenciar políticas de backup.

Atualmente, o Atlas oferece suporte aos seguintes serviços de armazenamento de objeto :

  • AWS Buckets S3

  • Armazenamento de blobs Azure

Você pode exportar manualmente snapshots individuais ou configurar uma política de exportação para exportação automática de seus snapshots. Para exportações automáticas, você deve especificar uma frequência em sua política de exportação:

  • Diariamente

  • Semanalmente

  • Por mês

  • Anual

O Atlas exporta automaticamente qualquer snapshot de backup com o tipo de frequência que corresponde à frequência de exportação. O resultado exportado é um backup completo desse snapshot.

Exemplo

Considere o seguinte:

  • Uma política de backup que define um cronograma semanal e mensal de captura de imagem

  • Uma política de exportação que define uma frequência de exportação mensal

Suponha que, no final do mês, os snapshots semanais e mensais aconteçam no mesmo dia. Haveria 4 snapshots dos quais 3 seriam semanais e o quarto snapshot, embora tratado como um snapshot semanal pelo Atlas, também seria o snapshot mensal porque aconteceu no mesmo dia. O Atlas exportará o snapshot mensal somente porque a frequência de exportação corresponde à frequência do snapshot para esse snapshot. Para exportar os snapshots semanais também, atualize a política de exportação para exportar snapshots semanais. Se a frequência de exportação for definida como semanal, o Atlas exportará todos os 4 snapshots.

À medida que a exportação avança, você poderá ver resultados parciais em seu serviço de armazenamento de objeto .

O Atlas mantém documentos em snapshots, independentemente das configurações de tempo de vida. Você pode acessar esses documentos a partir do seu snapshot após o prazo de vida útil.

A Atlas cobra $.125 por GB de dados exportados para o bucket do AWS S3 ou do Azure Blob Storage Container, além do custo de transferência de dados incorrido do AWS ou do próprio Azure. Atlas compacta os dados antes de exportar. Para estimar a quantidade de dados que estão sendo exportados, adicione o dataSize de cada banco de dados de dados no cluster. Esse total deve corresponder ao tamanho não compactado de sua exportação, que seria o custo máximo incorrido pelo Atlas para a operação de exportação de dados.

O Atlas carrega um arquivo vazio para /exported_snapshots/.permissioncheck quando você:

  • Adicionar um novo armazenamento de objeto para exportação

  • Iniciar uma exportação

Depois de concluir a exportação, o Atlas faz o upload de um arquivo de metadados chamado .complete e de um arquivo de metadados chamado metadata.json para cada coleção.

O Atlas carrega o arquivo de metadados chamado .complete no seguinte caminho em seu armazenamento de objeto :

/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/

Observação

Por padrão, o Atlas usa UUIDs de organização e projeto no caminho dos arquivos de metadados. Para usar nomes de organização e projeto em vez de UUIDs, defina a flag useOrgAndGroupNamesInExportPrefix como true via API. O Atlas substitui todos os espaços por sublinhados (_) e remove todos os caracteres que possam exigir processamento especial e caracteres a serem evitados dos nomes da organização e do projeto no caminho.

O arquivo de metadados .complete está no formato JSON e contém os seguintes campos:

Campo
Descrição

orgId

Sequência exclusiva de 24 dígitos hexadecimais que identifica a organização Atlas.

orgName

Nome da organização Atlas.

groupId

Sequência exclusiva de 24 dígitos hexadecimais que identifica o projeto na organização Atlas.

groupName

Nome do projeto Atlas.

clusterUniqueId

Sequência exclusiva de 24 dígitos hexadecimais que identifica o cluster Atlas.

clusterName

Nome do projeto Atlas.

snapshotInitiationDate

Data em que o snapshot foi tirado.

totalFiles

Número total de arquivos carregados no armazenamento de objeto .

labels

Rótulos do cluster cujo snapshot foi exportado.

customData

Dados personalizados, se houver, especificados ao criar a tarefa de exportação.

Exemplo

{
"orgId": "60512d6f65e4047fe0842095",
"orgName": "org1",
"groupId": "60512dac65e4047fe084220f",
"groupName": "group1",
"clusterUniqueId": "60512dac65e4047fe0842212",
"clusterName": "cluster0",
"snapshotInitiationDate": "2020-04-03T05:50:29.321Z"
"totalFiles": 23,
"labels": [
{
"key": "key1",
"value": "xyz"
},
{
"key": "key2",
"value": "xyzuio"
}
],
"customData": [
{
"key": "key1",
"value": "xyz"
},
{
"key": "key2",
"value": "xyzuio"
}
]
}

O Atlas carrega o arquivo metadata.json para cada coleção no seguinte caminho em seu armazenamento de objeto :

/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/metadata.json

Observação

Por padrão, o Atlas usa UUIDs de organização e projeto no caminho dos arquivos de metadados. Para usar nomes de organização e projeto em vez de UUIDs, defina a flag useOrgAndGroupNamesInExportPrefix como verdadeiro via a API. O Atlas substitui quaisquer espaços por sublinhados (_) e remove quaisquer caracteres que possam exigir manuseio especial e caracteres para evitar dos nomes de organização e projeto no caminho.

O arquivo de metadados está no formato JSON e contém os seguintes campos:

Campo
Descrição

collectionName

Etiqueta legível para humanos que identifica a collection.

indexes

Lista de todos os índices da coleção no formato retornado pelo comando db.collection.getIndexes.

options

Opções de configuração definidas na coleção. Para saber mais sobre as opções, consulte o comando db.createCollection().

type

(Opcional) Tipo de coleção. Esse campo é suportado somente para coleções de séries temporais, com um valor de timeseries. Deixe este campo desmarcado para collections padrão.

O Atlas não suporta a exportação de view coleções de tipo.

uuid

UUID da coleção. Para saber mais sobre o UUID, consulte UUID.

Exemplo

{
"options":{
"viewOn":"othercol",
"pipeline":[{"$project":{"namez":"$name"}}]
},
"indexes":[],
"collectionName":"viewcol",
"type":"view"
}
{
"options":{
"timeseries":{
"timeField":"timestamp",
"granularity":"seconds",
"bucketMaxSpanSeconds":{"$numberInt":"3600"}
}
},
"indexes":[],
"collectionName":"timeseriescol",
"type":"timeseries"
}
{
"indexes": [
{
"v":{"$numberInt":"2"},
"key":{
"_id":{"$numberInt":"1"}
},
"name":"_id_"
}
],
"uuid":"342c40a937c34c478bab03de8ce44f3e",
"collectionName":"somecol"
}

Se um trabalho de exportação falhar:

  • O Atlas não tenta exportar automaticamente novamente.

  • O Atlas não remove quaisquer dados parciais em seu armazenamento de objeto .

O Atlas faz gzipo upload de documentos -compressed Extended JSON (v2 ). O Atlas não carrega esses documentos em ordem. A seguir está o caminho para os arquivos em seu armazenamento de objeto :

/exported_snapshots/<orgName>/<projectName>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/<shardName>.<increment>.json.gz

Onde:

<orgName>

Nome da sua organização Atlas.

<projectName>

Nome do seu projeto Atlas.

<clusterName>

Nome do seu agrupamento do Atlas.

<initiationDateOfSnapshot>

Data em que o snapshot foi tirado.

<timestamp>

Timestamp em que o trabalho de exportação foi criado.

<dbName>

Nome do banco de dados no Atlas cluster.

<collectionName>

Nome da collection Atlas.

<shardName>

Nome do conjunto de réplicas. Para coleções fragmentadas, este é o nome do fragmento primário.

<increment>

Contagem que é incrementada à medida que os chunks são carregados. Começa às 0.

Você não pode executar as seguintes ações:

Para gerenciar seus snapshots do Cloud Backup, você deve ter acessoProject Owner ao projeto. Os usuários com acesso Organization Owner devem se adicionar como Project Owner ao projeto antes de poderem gerenciar os snapshots do Cloud Backup.

Para exportar seus snapshots do Cloud Backup, você precisa de um M10 Atlas cluster ou superior com o Cloud Backup ativado. Além disso, para exportar para um armazenamento de objeto , você deve fazer o seguinte:

  1. Configurar a função AWS IAM com STS:AssumeRole que concede ao Atlas acesso aos seus recursos da AWS . Para saber mais sobre como configurar o acesso da AWS para o Atlas, consulte configurar o acesso unificado da AWS.

  2. Configure uma política de função do IAM do AWS que concede ao Atlas acesso de gravação ou as permissões S3:PutObject e S3:GetBucketLocation aos seus recursos da AWS. Para saber mais sobre como configurar o acesso de gravação aos recursos da AWS, consulte Configurar o acesso unificado à AWS.

    Exemplo

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": "s3:GetBucketLocation",
    "Resource": "arn:aws:s3:::bucket-name"
    },
    {
    "Effect": "Allow",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::bucket-name/*"
    }
    ]
    }
  1. Configure a Entidade de Serviço do Azure com política de acesso para o seu projeto Atlas.

  2. Atribua as funções de Delegador do Blob Storage e Contribuidor de dados do Blob Storage à sua Entidade de Serviço do Azure.

    Para atribuir as funções à sua entidade de serviço, você precisará das seguintes informações:

    Função
    Descrição

    Delegador de blobs de armazenamento

    Isso permite que o Responsável pelo Serviço assine tokens SAS para acessar o Contêiner de Armazenamento do Azure. Para atribuir essa função, execute o seguinte comando:

    az role assignment create --assignee-object-id <service-principal-id> --role "Storage Blob Delegator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>

    Colaborador de dados de blob de armazenamento

    Isso permite acesso de leitura, gravação e exclusão de blobs para o Container de Armazenamento Azure. Para atribuir essa função, execute o seguinte comando:

    az role assignment create --assignee-principal-type ServicePrincipal --assignee-object-id <service-principal-id> --role "Storage Blob Data Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>

Você pode criar e gerenciar exportações de snapshots para o AWS S3 buckets a partir da Atlas CLI e API de administração do Atlas ou para os contêineres de armazenamento do Azure Blob pela Administration API do Atlas.

Observação

Você não pode exportar snapshots para os Contêiners de Armazenamento de Blobs do Azure usando o Atlas CLI.

Você pode gerenciar os trabalhos de exportação utilizando o Atlas CLI criando ou visualizando os trabalhos de exportação.

Para exportar um snapshot de backup de um cluster M10 ou superior do Atlas para um bucket AWS S3 existente usando o Atlas CLI, execute o seguinte comando:

atlas backups exports jobs create [options]

Para observar se uma tarefa de exportação de backup específica deve ser concluída usando o Atlas CLI, execute o seguinte comando:

atlas backups exports jobs watch <exportJobId> [options]

Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação do Atlas CLI para tarefas de exportação de backups atlas criadas e observação de tarefas de exportações de backups atlas.

Dica

Veja: links relacionados

Para listar as tarefas de restauração da cópia de segurança da nuvem para o projeto que você especifica utilizando a Atlas CLI, execute o seguinte comando:

atlas backups exports jobs list <clusterName> [options]

Para retornar os detalhes da tarefa de restauração da cópia de segurança da nuvem que você especifica utilizando a Atlas CLI, execute o seguinte comando:

atlas backups exports jobs describe [options]

Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação do Atlas CLI para a Lista de trabalhos de exportação de backups do Atlas e Descrição dos trabalhos de exportação de backups do Atlas.

Dica

Veja: links relacionados

Você pode gerenciar buckets de exportação usando o Atlas CLI criando, visualizando ou excluindo buckets de exportação.

Para criar um destino de exportação para backups do Atlas utilizando um bucket AWS S3 existente utilizando o Atlas CLI, execute o seguinte comando:

atlas backups exports buckets create <bucketName> [options]

Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para atlas backups exports buckets create.

Dica

Veja: links relacionados

Para listar os buckets de restauração de backups em nuvem para o projeto especificado utilizando o Atlas CLI, execute o seguinte comando:

atlas backups exports buckets list [options]

Para retornar os detalhes do bucket de restauração de backup em nuvem que você especifica usando a Atlas CLI, execute o seguinte comando:

atlas backups exports buckets describe [options]

Para saber mais sobre a sintaxe e os parâmetros dos comandos anteriores, consulte a documentação do Atlas CLI para a lista de buckets de exportação de backups do Atlas e a descrição dos buckets de exportação de backups do Atlas.

Dica

Veja: links relacionados

Para excluir um destino de exportação para cópias de segurança do Atlas utilizando a Atlas CLI, execute o seguinte comando:

atlas backups exports buckets delete [options]

Para saber mais sobre a sintaxe e os parâmetros do comando, consulte a documentação do Atlas CLI para atlas backups exports buckets delete.

Dica

Veja: links relacionados

Para permitir e gerenciar o acesso de provedor de nuvem e criar e gerenciar trabalhos de exportação de snapshots, a API que você usa deve ter a função Project Owner.

Use o seguinte para gerenciar Buckets ou Contêineres de exportação.

Para permitir acesso ao AWS S3 bucket ou Azure Blob Storage Container para exportar snapshots, envie uma POST solicitação para o endpoint do recurso Cloud Backups. Isso permite que o AWS S3 Bucket ou Azure Blob Storage Container para receber instantâneos do Atlas Cloud Backup. Ao enviar a solicitação para conceder acesso, você deve fornecer as seguintes informações:

  • String de 24 caracteres hexadecimais exclusiva que identifica o ID da função de acesso unificada da AWS que o Atlas deve usar para acessar o AWS S3 bucket. Para saber mais, consulte Configurar o acesso unificado da AWS.

Para recuperar todos os buckets do AWS S3 e os contêineres de armazenamento de Blobs do Azure para os quais o Atlas exporta snapshots, envie uma GET solicitação para o ponto de extremidade do recurso Cloud Backups .

Para excluir um bucket de exportação, você deve primeiro desabilitar a exportação automática de snapshots para o bucket S3 da AWS ou o contêiner do Armazenamento de Blobs do Azure para todos os clusters do projeto e, em seguida, enviar uma solicitação DELETE para o endpoint do recurso de backups em nuvem com o ID do bucket de exportação. Se necessário, envie uma solicitação GET ao endpoint para recuperar o ID do bucket de exportação.

Use o seguinte para gerenciar trabalhos de exportação.

Para exportar um snapshot de backup do Atlas para um AWS S3 Bucket ou Azure Blob Storage Container, envie uma solicitação POST para o endpoint de recursos do Cloud Backups com a ID do snapshot a ser exportado e a ID do AWS S3 Bucket ou Azure Blob Storage Container.

Para recuperar um tarefa de exportação de snapshot por seu ID, envie uma solicitação GET para o ponto de extremidade do recurso Backups em nuvem com o ID do tarefa de exportação .

Para recuperar todos os trabalhos de exportação de instantâneos em execução, envie uma GET solicitação para o endpoint do recurso Cloud Backups.

Voltar

Restaurar usando criptografia em repouso