Para carregar seus próprios dados em um Atlas Infinite cluster, utilize um dos seguintes métodos:
mongodump e mongorestore:
mongodumpcria uma exportação binária dos dados de um MongoDB autônomo ou conjunto de réplicas existente, incluindo um cluster Atlas Core, emongorestorecarrega os dados em um cluster Atlas Infinite. Use este método quando seus dados de origem estiverem em uma MongoDB deployment. Para saber como, consulte Restaurar dados de uma implementação do MongoDB .mongoimport:
mongoimportcarrega documentos de umJSONouCSVarquivo em um Atlas Infinite cluster. Use este método quando seus dados de origem estiverem em um arquivo externo ao MongoDB. O arquivo pode vir demongoexportou de uma ferramenta de exportação de terceiros. Para saber como, consulte Importar dados de um arquivo JSON ou CSV.Operações de gravação em massa: os métodos de banco de dados do MongoDB gravam lotes de documentos em um cluster Atlas Infinite. Use este método ao gerar ou transformar os documentos a partir de um aplicação,
mongosh, UI do Atlas ou outra interface. Para saber como, consulte Gravar dados que você gera.
Cada um destes métodos consome capacidade de gravação no Atlas Infinite cluster de destino. Para limitar o efeito em seus aplicativos, execute grandes cargas de dados durante o uso do sistema sem pico ou em uma período de manutenção programada.
Pré-requisitos
Conclua os seguintes pré-requisitos:
Crie um cluster Atlas Infinite de destino. Para saber mais, consulte Criar um Atlas Infinite ou Atlas Core Cluster.
Para usar
mongodump,mongorestoreoumongoimport, instale a versão estável mais recente das Database Tools MongoDB nesse host. Para saber como, consulte o guia de instalação das Database Tools MongoDB .
Restaurar dados de uma implementação do MongoDB
mongodump cria uma exportação binária de um conjunto de réplicas ou autônomo do MongoDB existente e mongorestore carrega essa exportação para um cluster Atlas Infinite. A exportação inclui dados, metadados e índices da implantação de origem. Para obter orientação sobre como copiar dados de um cluster fragmentado MongoDB existente, consulte Solicitar suporte.
Você também pode usar esse procedimento para migrar dados de um cluster gratuito ou cluster flexível no Atlas Core para um cluster dedicado no Atlas Infinite. Para escalar um cluster gratuito ou cluster flexível em vez de migrar dados, consulte Dimensionar um cluster gratuito ou flexível para um cluster dedicado.
Este procedimento requer tempo de inatividade. Pare as gravações em seu sistema de origem, execute mongodump e mongorestore e, em seguida, transfira seus aplicativos para o Atlas Infinite cluster.
Considerações
Antes de executar este procedimento, considere os seguintes comportamentos:
Consistência de dados: para evitar a perda de dados, pause as gravações em seu sistema de origem antes de executar o
mongodump. Se você executarmongodumpde um membro secundário, pause as gravações e aguarde até que o secundário alcance o primário antes de iniciar o despejo.Usuários e funções: O Atlas gerencia usuários do banco de dados , portanto,
mongorestorenão pode migrar usuários ou funções do banco de dados existentes para o cluster de destino. Crie os utilizadores de banco de dados necessários para suas aplicações no cluster Atlas Infinite de destino. Para saber mais, consulte Configurar usuários do banco de dados.Namespaces excluídos: Os diretórios
admineconfigno despejo contêm informações de usuário quemongorestorenão pode adicionar a um Atlas cluster Infinite, então o procedimento excluiadmin.*econfig.*.Recursos do host:
mongodumpé executado em um host com acesso de rede ao sistema de origem emongorestoreé executado em um host com acesso ao arquivo compactado e acesso de rede ao sistema de destino. Ambas as ferramentas usam CPU e memória no host, o que pode afetar o desempenho do host.
Passos
Configure um usuário de banco de dados no sistema de origem.
Se o sistema de origem impuser autenticação, mongodump deverá se autenticar como um usuário de banco de dados que possa ler todos os banco de dados que você migrar. A função backup no banco de dados admin concede estes privilégios.
Se esse usuário não existir em seu sistema de origem, crie um. Para saber como criar e gerenciar usuários do banco de dados , consulte a seguinte página para seu tipo de sistema:
Para clusters gerenciados pelo Atlas, consulte Configurar usuários do banco de dados.
Para sistemas autogerenciados, consulte Gerenciar usuários e roles em sistemas autogerenciados.
Configure um usuário de banco de dados no cluster de destino Atlas Infinite.
mongorestore deve autenticar como um usuário de banco de dados que pode escrever em todos os banco de dados que você migrar. A função Atlas admin no cluster Atlas Infinite de destino concede estes privilégios.
Se um usuário assim não existir no seu cluster Atlas Infinite de destino, crie um. Para saber como criar e gerenciar usuários de banco de dados no Atlas, consulte Configurar usuários de banco de dados.
Conceda ao seu host acesso aos sistemas de origem e destino.
Certifique-se de que o host em que você executa mongodump e mongorestore possa acessar ambos os sistemas:
Adicione o host à lista de acesso IP do projeto que contém seu Atlas Infinite cluster de destino. Para saber como adicionar um host a uma lista de acesso IP, consulte Configurar entradas de lista de acesso IP.
Se seu sistema de origem for um Atlas Core cluster em um projeto diferente, adicione o host à lista de acesso IP desse projeto também. Se seu sistema de origem for autogerenciado, configure o firewall para aceitar conexões do host. Para saber mais, consulte Proteção de rede e configuração.
Se você configurar o emparelhamento VPC, poderá adicionar o bloco CIDR da VPC do par ou uma sub-rede, ou o grupo de segurança da VPC emparelhada à lista de acesso IP. Para saber mais, consulte Lista de acesso IP.
Execute mongodump.
Montar o comando
mongodump.O modelo de comando
mongodumpa seguir se conecta a um conjunto de réplicas de origem ou a um cluster autônomo usando sua string de conexão e gera um arquivo do despejo para um arquivo.Copie o modelo no editor de texto de sua preferência e substitua o espaço reservado
<connectionString>pela string de conexão para seu sistema de origem, e<fileName>pelo nome do arquivo compactado a ser criado.mongodump --uri "<connectionString>" --archive=<fileName>.archive Para saber como construir uma string de conexão para seu sistema de origem, consulte Connection strings.
Observação
Se estiver usando
mongodumpoumongorestoreno Ubuntu.,18 04você poderá receber umacannot unmarshal DNSmensagem de erro ao usar connection strings SRV (nomongodb+srv://formato) com a--uriopção. Nesse caso, use uma das seguintes opções:a
--uriopção com uma string de conexão não SRV (nomongodb://formato)a opção
--hostpara especificar o host para conectar diretamente
Execute o comando concluído a partir de um terminal ou prompt de comando em um host que tenha acesso de rede ao seu sistema de origem.
Exemplo
O comando
mongodumpa seguir se conecta a um cluster de origem Atlas Core usando uma string de conexão SRV, que contém o nome de usuário (mySourceUsername) e a senha (mySourcePassword) de um usuário de banco de dados com a funçãobackupnaadminbanco de dados. O comando gera um arquivo do despejo para um arquivo chamadomongodump.archiveno diretório de trabalho atual.mongodump --uri "mongodb+srv://mySourceUsername:mySourcePassword@cluster0.example.mongodb.net" \ --archive="mongodump.archive"
Execute mongorestore.
Montar o comando
mongorestore.O modelo de comando
mongorestorea seguir se conecta ao cluster Atlas Infinite de destino usando sua string de conexão e restaura o arquivo criado pormongodump. Ele usa--nsExcludepara excluir os bancos de dadosadmineconfig, que o Atlas gerencia.Copie o modelo no editor de texto de sua preferência e substitua os seguintes espaços reservados pelos valores apropriados:
<connectionString>: substitua isso pela string de conexão SRV para seu cluster Atlas Infinite de destino. Para recuperar ou construir uma string de conexão para o cluster de destino, consulte Connection strings.Inclua o nome de usuário e a senha de um usuário de banco de dados com a função
Atlas adminna string de conexão.<filePath>: substitua isso pelo caminho para o arquivo criado pormongodump.
Observação
Se o nome de usuário ou senha incluir os seguintes caracteres, esses caracteres deverão ser convertidos usando codificação percentual:
$ : / ? # [ ] @ mongorestore --uri "<connectionString>" \ --archive="<filePath>" \ --nsExclude "admin.*" \ --nsExclude "config.*" Execute o comando concluído a partir de um terminal ou prompt de comando em um host que tenha acesso ao arquivo criado por
mongodump.Exemplo
O comando
mongorestorea seguir se conecta a um Atlas Infinite cluster usando uma string de conexão SRV, que contém o nome de usuário (myDestinationUsername) e a senha (myDestinationPassword) de um usuário de banco de dados com a funçãoAtlas admin. O comando restaura o arquivo emmongodump.archivecriado pormongodump, excluindo os bancos de dadosadmineconfig.mongorestore --uri "mongodb+srv://myDestinationUsername:myDestinationPassword@cluster0.example.mongodb.net" \ --archive="mongodump.archive" \ --nsExclude "admin.*" \ --nsExclude "config.*"
Importar Dados de um Arquivo JSON ou CSV
mongoimport lê um arquivo JSON ou CSV e insere cada registro em uma collection em um Atlas Infinite cluster. O arquivo pode vir de uma ferramenta de exportação de terceiros. Para restaurar dados de uma implementação do MongoDB em um cluster Atlas Infinite, consulte Restaurar dados de uma implementação do MongoDB .
Considerações
Antes de executar este procedimento, considere os seguintes comportamentos:
JSON estendido:
mongoimportusa representação de modo estrito para determinados tipos de BSON.Somente documentos: ao contrário de
mongorestore,mongoimportcarrega apenas documentos, não opções de coleção ou definições de índice. Crie índices no cluster Atlas Infinite de destino após a conclusão da importação.Recursos do host: o
mongoimporté executado no host que contém seuarquivo e usa a CPU e a memória nesse host.Outras interfaces: para carregar um arquivo sem a linha de comando, use o MongoDB Compass, que importa arquivos
JSONeCSV, ou a UI do Atlas, que insere documentosJSONque você cola ou digita.
Passos
No Atlas, vá para a página Database & Network Access do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.
Na barra lateral, clique em Database & Network Access sob o título Security.
O banco de dados & A página Acesso à rede é exibida depois de concluir as etapas anteriores.
Configure um usuário de banco de dados no Atlas cluster de destino.
Para executar mongoimport para gravar em um Atlas cluster, é necessário especificar um usuário de banco de dados que tenha privilégios de leitura e gravação no banco de dados para o qual os dados serão importados. Por exemplo, um usuário com papel Atlas admin fornece estes privilégios.
Se esse usuário não existir, crie o usuário:
Se ainda não estiver sendo exibido, clique na aba Database Users.
Clique em Add New Database User.
Adicione um usuário Atlas admin .
No Atlas, vá para a página Clusters do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Na barra lateral, clique em Clusters sob o título Database.
A página Clusters é exibida.
Atualizar Lista de Acesso IP.
Se o host onde você executará não mongoimport estiver na Lista de Acesso IP, atualize a lista. Você pode especificar:
O endereço IP público do servidor no qual o
mongoimportserá executado, ouPara o emparelhamento VPC, você pode definir o bloco VPC CIDR do peer (ou uma sub-rede) ou o Grupo de Segurança do peer VPC, se você escolher a AWS como seu fornecedor de serviço em nuvem.
Copie as informações do host / URI do cluster de destino.
Você pode se conectar ao cluster do Atlas usando sua cadeia de conexão URI. Na caixa de diálogo de conexão, execute as seguintes etapas:
Clique em Drivers.
Copie a cadeia de conexão localizada na etapa 1.
Substitua SENHA pela senha do usuário root e DATABASE pelo nome do banco de dados ao qual você deseja se conectar.
Importante
Você deve trocar quaisquer instâncias do caractere
@no<PASSWORD>fornecido. Por exemplo,p@ssworddeve serp%40ssword.
Essa string de conexão é especificada para mongoimport na --uri opção.
Ao utilizar o --host, se o Atlas cluster for um conjunto de réplicas, você também deverá recuperar o nome do conjunto de réplicas. Por exemplo:
myAtlasRS/atlas-host1:27017,atlas-host2:27017,atlas-host3:27017
Escreva os dados que você gera
As operações de gravação em massa enviam muitas gravações para um cluster Atlas Infinite em uma única solicitação, o que reduz as viagens de ida e volta da rede e aumenta a taxa de transferência de gravações. Escolha este método para gravar documentos que você gera em um cluster do Atlas Infinite, em vez de copiar dados de uma implantação ou arquivo existente.
Considerações
Antes de executar este procedimento, considere os seguintes comportamentos:
Comportamento de gravação em massa: as operações de gravação e as opções que você especifica em uma solicitação de gravação em massa determinam como o MongoDB ordena operações de gravação, lida com erros e relata os resultados de uma solicitação. Para saber como essas opções afetam o comportamento de escrita em massa, consulte a página de referência
bulkWrite().Outras interfaces: para escrever um pequeno número de documentos sem lógica de lote, use
insertMany()ouinsertOne()demongoshou de um driver do MongoDB , ou a interface do usuário do Atlas, que insere documentosJSONque você cola ou digita.
Passos
Conecte-se ao seu cluster Atlas Infinite.
Para executar as operações de gravação em massa neste procedimento, conecte-se ao cluster com mongosh. Para saber como, consulte Conectar a um Atlas cluster.
Você também pode executar operações de gravação em massa a partir do código do aplicação com um driver do MongoDB , a partir da UI do Atlas ou de qualquer outra interface que se conecte ao seu cluster. Para saber mais sobre as operações equivalentes em cada interface, consulte Operações de Gravação em Massa.
Execute a operação de gravação em massa.
Para escrever em uma única collection, execute bulkWrite(). Para saber mais sobre os tipos de operação de escrita e as opções de escrita em massa, consulte bulkWrite().
Por exemplo, o seguinte comando insere dois documentos na collection inventory:
db.inventory.bulkWrite( [ { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f1"), item: "notebook", qty: 50 } } }, { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f2"), item: "pencil", qty: 100 } } } ] )
Para escrever em várias collections ou bancos de dados em uma solicitação, execute bulkWrite() e especifique o namespace para cada operação. Por exemplo, o comando a seguir insere um documento na coleção sales.inventory e um documento na coleção supplies.inventory:
db.getMongo().bulkWrite( [ { namespace: "sales.inventory", name: "insertOne", document: { item: "notebook", qty: 50 } }, { namespace: "supplies.inventory", name: "insertOne", document: { item: "pencil", qty: 100 } } ] )
Por padrão, as operações de gravação em massa são executadas em ordem e param no primeiro erro. Para saber como configurar a ordem de execução, consulte Execução de operações.
Verifique os resultados.
Revise as contagens que a operação retorna e confirme a contagem de documento em cada coleção de destino. Para saber mais,consulte Saída.
Para saber como lidar com erros em operações de escrita em massa, consulte Tratamento de erros.
Limitações
O Atlas Infinite tem uma lista completa de limitações de visualização pública em Disponibilidade de visualização pública. As seguintes limitações se aplicam quando você carrega dados em um cluster Atlas Infinite:
Sem repetição de oplog: O Atlas Infinite não suporta repetição de oplog. Não utilize a opção
mongodump --oplogou a opçãomongorestore --oplogReplaycom agrupamentos do Atlas Infinite.Queryable Encryption e criptografia no nível do campo do lado do cliente: você não pode usar
mongodumpoumongorestorecom uma coleção que usa Queryable Encryption ou criptografia no nível do campo do lado do cliente.Migração ao vivo e restauração entre edições: o Atlas Infinite não oferece suporte à migração ao vivo ou backup e restauração entre os clusters do Atlas Core e do Atlas Infinite. As diferenças arquitetônicas entre as duas opções de implantação tornam os snapshots e as migrações ao vivo incompatíveis.