Para carregar seus próprios dados em um cluster Atlas Infinite, use 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 implantação do MongoDB. Para aprender como, consulte Restaurar dados de uma implantação do MongoDB.mongoimport:
mongoimportcarrega documentos de um arquivoJSONouCSVpara um cluster Atlas Infinite. 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 aprender como, consulte Importar dados de um arquivo JSON ou CSV.Operações de gravação em massa: os métodos do banco de dados MongoDB gravam lotes de documentos em um cluster Atlas Infinite. Use este método quando você mesmo gerar ou transformar os documentos a partir de um aplicativo,
mongosh, IU do Atlas ou outra interface. Para aprender como, consulte Gravar dados que você gera.
Cada um desses métodos consome capacidade de gravar no cluster Atlas Infinite de destino. Para limitar o efeito em seus aplicativos, execute grandes cargas de dados durante períodos de baixo uso do sistema ou em um período de manutenção agendado.
Pré-requisitos
Conclua os seguintes pré-requisitos:
Crie um cluster Atlas Infinite de destino. Para aprender mais, consulte Criar um cluster Atlas Infinite ou Atlas Core.
Para usar
mongodump,mongorestoreoumongoimport, instale a versão de lançamento estável mais recente do MongoDB Database Tools nesse hospedar. Para aprender como, consulte o guia de instalação do MongoDB Database Tools.
Restaurar dados de uma implantação do MongoDB
mongodump cria uma exportação binária de um MongoDB autônomo ou conjunto de réplicas existente, e mongorestore carrega essa exportação em 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 sharded do MongoDB existente, consulte Solicitação de suporte.
Você também pode usar este procedimento para migrar dados de um cluster Free ou cluster Flex no Atlas Core para um cluster dedicado no Atlas Infinite. Para dimensionar um cluster Free ou cluster Flex no local em vez de migrar dados, consulte Dimensionar um cluster Free ou Flex para um cluster dedicado.
Este procedimento requer tempo de inatividade. Interrompa gravar na sua implantação de origem, executar mongodump e mongorestore e, em seguida, transfira seus aplicativos para o cluster Atlas Infinite.
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 na sua implantação de origem antes de executar
mongodump. Se você executarmongodumpde um secundário, pause gravar e aguarde até que o secundário alcance o primário antes de iniciar o dump.Usuários e funções: o Atlas gerencia usuários de banco de dados, portanto,
mongorestorenão pode migrar usuários ou funções de banco de dados existentes para o cluster de destino. Crie os usuários de banco de dados de que seus aplicativos precisam no cluster Atlas Infinite de destino. Para saber mais, consulte Configurar usuários de banco de dados.Namespaces excluídos: Os diretórios
admineconfigno dump contêm informações do usuário quemongorestorenão pode adicionar a um cluster Atlas Infinite, portanto, o procedimento excluiadmin.*econfig.*.Recursos do hospedar:
mongodumpé executado em um hospedar com acesso de rede à sua implantação de origem, emongorestoreé executado em um hospedar com acesso ao arquivo e acesso de rede à sua implantação de destino. Ambas as FERRAMENTAS usam CPU e memória no hospedar, o que pode afetar o desempenho desse hospedar.
Passos
Configure um usuário de banco de dados na implantação de origem.
Se a implantação de origem impuser autenticação, o mongodump deverá se autenticar como um usuário de banco de dados que possa ler todos os bancos de dados que você migrar. A função backup no banco de dados admin concede esses privilégios.
Se esse usuário não existir em sua implantação de origem, crie um. Para aprender como criar e gerenciar usuários de banco de dados, consulte a página a seguir para seu tipo de implantação:
Para clusters gerenciados pelo Atlas, consulte Configurar usuários de banco de dados.
Para implantações autogerenciadas, consulte Gerenciar usuários e funções em implantações autogerenciadas.
Configure um usuário de banco de dados no cluster Atlas Infinite de destino.
mongorestore deve se autenticar como um usuários de banco de dados que pode gravar em todos os banco de dados que você migrar. A função Atlas admin no cluster Atlas Infinite de destino concede esses privilégios.
Se esse usuário não existir no seu cluster Atlas Infinite de destino, crie um. Para aprender como criar e gerenciar usuários de banco de dados no Atlas, consulte Configurar usuários de banco de dados.
Conceda acesso à sua rede hospedar às implantações de origem e destino.
Certifique-se de que o hospedar onde você executa mongodump e mongorestore possa alcançar ambas as implantações:
Adicione o hospedar à lista de acesso IP do projeto que contém seu cluster Atlas Infinite de destino. Para aprender como adicionar um hospedar a uma lista de acesso IP, consulte Configurar entradas de lista de acesso IP.
Se sua implantação de origem for um cluster do Atlas Core em um projeto diferente, adicione o hospedar à lista de acesso IP desse projeto também. Se sua implantação de origem for autogerenciada, configure seu firewall para aceitar conexões do hospedar. Para aprender mais, consulte Proteção de rede e configuração.
Se você configurar o emparelhamento da VPC, você pode adicionar o bloco CIDR da VPC do peer ou uma sub-rede, ou o grupo de segurança da VPC do peer à lista de acesso IP. Para saber mais, consulte Lista de acesso IP.
Execute mongodump.
Montar o comando
mongodump.O seguinte modelo de comando
mongodumpconecta-se a um conjunto de réplicas de origem ou cluster autônomo usando sua string de conexão e gera um arquivo do dump para um arquivo.Copie o modelo no seu editor de texto preferido e substitua o placeholder
<connectionString>pela string de conexão da sua implantação de origem, e o<fileName>pelo nome do arquivo a ser criado.mongodump --uri "<connectionString>" --archive=<fileName>.archivePara aprender como construir uma string de conexão para sua implantação de origem, consulte string de conexão.
Observação
Se estiver usando
mongodumpoumongorestoreno Ubuntu 18.04, você poderá enfrentar uma mensagem de errocannot unmarshal DNSao usar connection strings SRV (no formatomongodb+srv://) com a opção--uri. Nesse caso, use uma das seguintes opções:a opção
--uricom uma connection string não SRV (no formatomongodb://)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 à sua implantação de origem.
Exemplo
O comando
mongodumpa seguir conecta-se a um cluster Atlas Core de origem 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çãobackupno banco de dadosadmin. O comando gera um arquivo do dump 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 conecta-se ao seu 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 para o editor de texto de sua preferência e substitua os seguintes espaços reservados pelos valores apropriados:
<connectionString>: substitua por a string de conexão SRV para o seu cluster Atlas Infinite de destino. Para recuperar ou construir uma string de conexão para o seu cluster de destino, consulte Cadeias de conexão.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 morto criado pormongodump.
Observação
Se o nome de usuário ou senha incluir os seguintes caracteres, esses caracteres deverão ser convertidos usando a 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 hospedar que tenha acesso ao arquivo criado por
mongodump.Exemplo
O seguinte comando
mongorestoreconecta-se a um cluster Atlas Infinite usando uma string de conexão SRV, que contém o nome de usuário (myDestinationUsername) e a senha (myDestinationPassword) para 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 coleção em um cluster Atlas Infinite. O arquivo pode vir de uma ferramenta de exportação de terceiros. Para restaurar dados de uma implantação do MongoDB para um cluster Atlas Infinite, consulte Restaurar dados de uma implantação do MongoDB.
Considerações
Antes de executar este procedimento, considere os seguintes comportamentos:
JSON estendido:
mongoimportusa representação de modo estrito para determinados BSON types.Apenas 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 hospedar:
mongoimporté executado no hospedar que contém seu arquivo e usa CPU e memória nesse hospedar.Outras interfaces: Para carregar um arquivo sem a linha de comando, use MongoDB Compass, que importa arquivos
JSONeCSV, ou a IU 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.
A página Acesso ao banco de dados e à rede é exibida após a conclusão das etapas anteriores.
Configure um usuário de banco de dados no cluster do Atlas de destino.
Para executar mongoimport para gravar em um cluster do Atlas, você deve especificar um usuário de banco de dados que tenha privilégios de readWrite no banco de dados para o qual importar dados. Por exemplo, um usuário com a função Atlas admin fornece esses 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 mongoimport não 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 hospedar / URI do cluster de destino.
Você pode se conectar ao cluster do Atlas usando sua URI de string de conexão. 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 opção --uri.
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:27017Gravar dados que você gera
As operações de gravar em massa enviam muitas ações de gravar 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 ao gravar. Escolha este método para gravar documentos que você gera em um cluster 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 gravar em massa: As operações e opções de gravar que você especifica em uma solicitação de gravar em massa determinam como o MongoDB ordena as operações de gravar, lida com erros e relata os resultados de uma solicitação. Para aprender como essas escolhas afetam o comportamento de gravação em massa, consulte a página de referência
bulkWrite().Outras interfaces: Para gravar um pequeno número de documentos sem lógica de lote, use
insertMany()ouinsertOne()demongoshou um driver MongoDB, ou a IU do Atlas, que insereJSONdocumentos que você cola ou digita.
Passos
Conecte-se ao seu cluster Atlas Infinite.
Para executar as operações de gravar em massa neste procedimento, conecte-se ao seu cluster com mongosh. Para aprender como, consulte Conectar a um cluster do Atlas.
Você também pode executar operações de gravação em massa a partir do código do aplicativo com um driver do MongoDB, da IU do Atlas ou de qualquer outra interface que se conecte ao seu cluster. Para aprender sobre as operações equivalentes em cada interface, consulte Operações de gravação em massa.
Execute a operação de gravar em massa.
Para gravar em uma única coleção, execute bulkWrite(). Para saber mais sobre os tipos de operação de gravação e as opções de gravação em massa, consulte bulkWrite().
Por exemplo, o comando a seguir insere dois documentos na coleção inventory:
db.inventory.bulkWrite( [ { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f1"), item: "notebook", qty: 50 } } }, { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f2"), item: "pencil", qty: 100 } } }] )Para gravar em várias coleções 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 gravar em massa são executadas em ordem e param no primeiro erro. Para aprender como configurar a ordem de executar, consulte Execução de Operações.
Verifique os resultados.
Revisar as contagens que a operação retorna e confirmar a contagem de documentos em cada coleção de destino. Para aprender mais, consulte Saída.
Para aprender como lidar com erros em operações de gravação em massa, consulte Tratamento de erros.
Limitações
O Atlas Infinite tem uma lista completa de limitações da visualização pública em Disponibilidade da Visualização Pública. As seguintes limitações se aplicam ao carregar dados em um cluster Atlas Infinite:
Sem reprodução de oplog: O Atlas Infinite não oferece suporte à reprodução de oplog. Não use a opção
mongodump --oplogou a opçãomongorestore --oplogReplaycom clusters 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 em produção e restaurar entre edições: Atlas Infinite não oferece suporte à migração em produção ou backup e restaurar entre clusters Atlas Core e Atlas Infinite. Diferenças arquitetônicas entre as duas opções de implantação tornam os snapshots e as migrações em produção incompatíveis.