Exportar Snapshots de Backup em Nuvem
Nesta página
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.
Serviços de armazenamento suportados
Atualmente, o Atlas oferece suporte aos seguintes serviços de armazenamento de objeto :
AWS Buckets S3
Armazenamento de blobs Azure
Como o Atlas exporta snapshots
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.
Uploads de arquivos do Atlas
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 |
---|---|
| Sequência exclusiva de 24 dígitos hexadecimais que identifica a organização Atlas. |
| Nome da organização Atlas. |
| Sequência exclusiva de 24 dígitos hexadecimais que identifica o projeto na organização Atlas. |
| Nome do projeto Atlas. |
| Sequência exclusiva de 24 dígitos hexadecimais que identifica o cluster Atlas. |
| Nome do projeto Atlas. |
| Data em que o snapshot foi tirado. |
| Número total de arquivos carregados no armazenamento de objeto . |
| Rótulos do cluster cujo snapshot foi exportado. |
| 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 |
---|---|
| Etiqueta legível para humanos que identifica a collection. |
| Lista de todos os índices da coleção no formato retornado pelo comando db.collection.getIndexes. |
| Opções de configuração definidas na coleção. Para saber mais sobre as opções, consulte o comando db.createCollection(). |
| (Opcional) Tipo de coleção. Esse campo é suportado somente para coleções de séries temporais, com um valor de O Atlas não suporta a exportação de |
| 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 .
Formato de Dados Exportado
O Atlas faz gzip
o 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:
| Nome da sua organização Atlas. |
| Nome do seu projeto Atlas. |
| Nome do seu agrupamento do Atlas. |
| Data em que o snapshot foi tirado. |
| Timestamp em que o trabalho de exportação foi criado. |
| Nome do banco de dados no Atlas cluster. |
| Nome da collection Atlas. |
| Nome do conjunto de réplicas. Para coleções fragmentadas, este é o nome do fragmento primário. |
| Contagem que é incrementada à medida que os chunks são carregados. Começa às |
Limitações
Você não pode executar as seguintes ações:
Exporte snapshots substitutos.
Tenha mais de uma exportação ativa por snapshot.
Exporte collections de visualização ou collections do sistema , com exceção das
<database>.system.js
collections.Exporte snapshots de clusters em um projeto Atlas com a Encryption at Rest com restrição de IP habilitada.
Exporte snapshots de projetos configurados para endpoints privados.
Acesso necessário
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.
Pré-requisitos
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:
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.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
eS3: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/*" } ] }
Configure a Entidade de Serviço do Azure com política de acesso para o seu projeto Atlas.
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çãoDescriçãoDelegador 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>
Gerenciamento de Exportação
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.
Gerenciar trabalhos de exportação
Você pode gerenciar os trabalhos de exportação utilizando o Atlas CLI criando ou visualizando os trabalhos de exportação.
Criar uma tarefa 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.
Exibir tarefas de exportação
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.
Gerenciar Buckets de Exportação
Você pode gerenciar buckets de exportação usando o Atlas CLI criando, visualizando ou excluindo buckets de exportação.
Criar um bucket 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.
Visualizar buckets de exportação
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.
Excluir um bucket de exportação
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.
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
.
Gerenciar Buckets de Exportação
Use o seguinte para gerenciar Buckets ou Contêineres de exportação.
Criar um bucket 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.
String de 24 caracteres hexadecimais exclusiva que identifica o Azure Service Principal que o Atlas deve usar para acessar o Azure Blob Storage. Para saber mais, consulte Configurar e gerenciar o acesso principal de serviços do Azure.
Endpoint de serviço da sua conta do Azure Blob Storage Para saber mais, consulte Documentação do Azure.
Listar todos os buckets de exportação
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 .
Excluir um bucket de exportação
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.
Gerenciar trabalhos de exportação
Use o seguinte para gerenciar trabalhos de exportação.
Criar uma tarefa de exportação de snapshot
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.
Recuperar tarefa de exportação de snapshot
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.